Java: практическое задание пятой недели начальных курсов

1.8 (36%) 25 vote[s]

Задание заключается в следующем: создайте приложение, которое будет реализовывать паттерн Команда.

Реализуйте интерфейс Command:

public interface Command { 
public void execute(); 
} 

для поддержки следующих команд:

  • help

Выводит на экран строку Help executed

  • echo

Выводит на экран строку указан как текст
Например
echo «Hello World«
выведет на экран
Hello World

  • date now

Выводит на экран текущую дату в миллисекундах с 1 января 1970 года. Для вывода даты воспользуйтесь строкой

System.out.println(System.currentTimeMillis()); 
  • exit

Выводит на экран Goodbye!

Каждая из реализаций это отдельный класс!
Всю логику обработки команд реализуйте в классе:

 
public class Application { 
public static void main(String[] args){
 //YOUR CODE COMES HERE 
  } 
}        

В качестве аргументов метод main будет получать команды. Например, для команды echo Hello World, метод main получит массив с ДВУХ элементов { «echo«, «Hello World«}. Для команды date now также будет ДВА аргументы { «date«, «now«}.

При реализации воспользуйтесь поддержкой полиморфизма времени выполнения. Фактически Вам нужно создавать экземпляр реализации конкретной команды в зависимости от набора входных данных. Типом ссылки на конкретный экземпляр будет Command, таким образом вызов конкретной команды будет сведено к command.execute ().

Подсказка: для передачи данных в конкретную реализацию команды воспользуйтесь конструктором.

В случае если команда не известна, или содержит неверное количество аргументов выведите на экран надпись Error.

Уделите особое внимание проверке входных данных! Например: args может быть null или пустой.

Обратите внимание! Все Ваши классы должны находиться в пакете com.tasks5.command Это означает, что каждый файл должен содержать package com.tasks5.command; в начале файла.

Содержание всех ваших файлов вставьте в окно ниже друг под другом. Убедитесь, что код каждого из классов начинается строкой package com.tasks5.command;.

Вариант реализации:

package com.tasks5.command;

public class Application {
    static class Help implements Command {
        @Override
        public void execute() {
            System.out.println("Help executed");
        }
    }

    static class Now implements Command {
        @Override
        public void execute() {
            System.out.println(System.currentTimeMillis());
        }
    }

    static class Echo implements Command {
        private String argument;
        Echo(String argument) {
            this.argument = argument;
        }
        @Override
        public void execute() {
            System.out.println(argument);
        }
    }

    static class Exit implements Command {
        @Override
        public void execute() {
            System.out.println("Goodbye!");
        }
    }

    public static void main(String[] args){
        //YOUR CODE COMES HERE
        Command command;
        if (args == null || args.length == 0) {
            System.out.println("Error");
        }else {
            switch (args[0]) {
                case "help":
                    if (args.length == 1 && args[0].equals("help")) {
                        command = new Help();
                        command.execute();
                    } else {
                        System.out.println("Error");
                    }
                    break;
                case "echo":
                    if (args.length == 2 && args[0].equals("echo")) {
                        command = new Echo(args[1]);
                        command.execute();
                    } else {
                        System.out.println("Error");
                    }
                    break;
                case "date":
                    if (args.length == 2 && args[1].equals("now")) {
                        command = new Now();
                        command.execute();
                    }else {
                        System.out.println("Error");
                    }
                    break;
                case "exit":
                    if (args.length == 1 && args[0].equals("exit")) {
                        command = new Exit();
                        command.execute();
                    } else {
                        System.out.println("Error");
                    }
                    break;
                default:
                    System.out.println("Error");
            }
//            command.execute();
        }
    }
}
package com.tasks5.command;

public interface Command {
    public void execute();
}

Читайте больше по теме:

Подписаться
Уведомление о
guest
0 комментариев
Inline Feedbacks
View all comments
Просмотры: 333

Популярные записи