使用命令模式创建对象并将其添加到 ArrayList

Using Command- Pattern to create an object and add this to an ArrayList

我在理解练习时遇到了问题。 我要做的是:

  1. 不同的用户必须能够添加和删除票证 票务系统(在列表中)
  2. 我必须使用 Command-Design-Pattern

但我实际上不知道该怎么做。 我考虑过以下问题:

学生按下 "createTicketForinsideBuildingDamage"- 按钮

还是我完全错了? 我不想要像完整代码这样的解决方案。但是一个想法,我该怎么做。 谢谢

首先,我认为您应该了解设计模式的工作原理以及 类 之间的交互方式。您可以在此处查看示例 https://refactoring.guru/design-patterns/command.

我的做法:

Command.java

// concrete commands will implement this interface
// you can also use an abstract class if you want to have certain attributes, such as a TicketSystem
public interface Command { 
    // this method can be set to return something useful instead of void, if needed
    void execute();
}

AddTicketCommand.java

public class AddTicketCommand implements Command {
    // TicketSystem and Ticket attributes

    // constructor that initializes the attributes

    @Override
    public void execute() {
        // add the Ticket to the TicketSystem
    }
}

Invoker.java

public class Invoker {
    private Command command;

    public void setCommand(Command command) {
        this.command = command;
    }

    public void invoke() {
        command.execute();
    }
}

因此,当你想使用某个命令时,你就相应地设置它。例如:invoker.setCommand(new AddTicketCommand(new TicketSystem(), new Ticket())) 然后用invoker.invoke().

调用

希望对您有所帮助!