Command Design Pattern
定义
将命令(函数)封装成对象。
实现方式
Command
代码语言:javascript复制public interface Command {
void excute();
}
ReadCommand
代码语言:javascript复制public class ReadCommand implements Command {
@Override
public void excute() {
System.out.println("read something");
}
}
WriteCommand
代码语言:javascript复制public class WriteCommand implements Command {
@Override
public void excute() {
System.out.println("write something");
}
}
Application
代码语言:javascript复制public class Application {
public static void main(String[] args) {
List<Command> commands = Lists.newArrayList(new ReadCommand(),
new WriteCommand());
commands.forEach(Command::excute);
}
}
使用场景
控制命令的执行,例如异步、延迟、排队执行命令,撤销命令,存储命令,命令记录日志等。
例如游戏后端处理客户端传来的命令,主线程接收命令后将命令放入队列,由其他线程执行(线程池),达到异步处理的目的。
其他
目前已经学了十来种设计模式了,发现自己之前对设计模式的理解有些问题。以前觉得设计模式重点是代码实现方式,这样在看代码时才能知道这是用了啥设计模式。后来发现设计模式重在使用场景,解决的痛点。代码实现很多都差不多的。