NOTE
6.21 命令模式
1. 定义 2. UML 3. Java 3.1. 命令 - Course - ICommand - CloseCommand - OpenCommand 3.2. 命令执行者 - Me 3.3. Client
这是历史学习笔记,可能存在过时或不完整的理解。
1. 定义
2. UML
3. Java
3.1. 命令
- Course
public class Course
{
public void open()
{
System.out.println("open");
}
public void close()
{
System.out.println("close");
}
}
- ICommand
public interface ICommand
{
void execute();
}
- CloseCommand
public class CloseCommand implements ICommand
{
private Course course;
public CloseCommand(Course course)
{
this.course = course;
}
@Override
public void execute()
{
this.course.close();
}
}
- OpenCommand
public class OpenCommand implements ICommand
{
private Course course;
public OpenCommand(Course course)
{
this.course = course;
}
@Override
public void execute()
{
this.course.open();
}
}
3.2. 命令执行者
- Me
public class Me
{
private List<ICommand> commands = new ArrayList<>();
public void addCommand(ICommand command)
{
this.commands.add(command);
}
public void executeCommand()
{
for (ICommand command : commands)
{
command.execute();
}
}
}
3.3. Client
public class Client
{
public static void main(String[] args)
{
Me me = new Me();
Course course = new Course();
me.addCommand(new OpenCommand(course));
me.addCommand(new CloseCommand(course));
me.executeCommand();
}
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看