Реализация паттерна команды
Изучаю java по видеоурокам, на курсах дали задачу реализовать паттерн "комманды".
В качестве аргументов метод main будет получать команды. Например, для команды echo Hello World, метод main получит массив с ДВУХ элементов { "echo", "Hello World"}. Для команды date now также будет ДВА аргументы { "date", "now"}.
При реализации воспользуйтесь поддержкой полиморфизма времени выполнения. Фактически Вам нужно создавать экземпляр реализации конкретной команды в зависимости от набора входных данных. Типом ссылки на конкретный экземпляр будет Command, таким образом вызов конкретной команды будет сведено к command.execute() В случае если команда не известна, или содержит не верное количество аргументов выведите на экран надпись Error
Реализовал сам паттерн,не могу понять как сделать чтобы вызов был как в задании.
'''java
package com.tasks5.command;
public class Application {
public static void main(String[] args){
App a= new App();
User u= new User(new help(a), new echo(a),new date(a),new exit(a));
u.help();
u.echo();
u.date();
u.exit();
//YOUR CODE COMES HERE
}
}
interface Command {void execute();}
class App
{
void help() {System.out.println("Help executed");}
void echo() {System.out.println("HelloWorld");}
void date() {System.out.println(System.currentTimeMillis());}
void exit() {System.out.println("Goodbye!");}
}
//command "help"
class help implements Command
{
App command= new App();
public help(App command) {this.command = command;}
public void execute() {command.help();}
}
//command "echo text"
class echo implements Command
{
App command= new App();
public echo(App command) {this.command = command;}
public void execute() {command.echo();}
}
//command "date now"
class date implements Command
{
App command= new App();
public date(App command) {this.command = command;}
public void execute() {command.date();}
}
//command "exit"
class exit implements Command
{
App command= new App();
public exit(App command) {this.command = command;}
public void execute() {command.exit();}
}
//Vizov commandi;
class User
{
Command help;
Command echo;
Command date;
Command exit;
public User(Command help, Command echo, Command date, Command exit) {
this.help = help;
this.echo = echo;
this.date = date;
this.exit = exit;
}
void help() {help.execute();}
void echo() {echo.execute();}
void date() {date.execute();}
void exit() {exit.execute();}
}
'''