十二、命令模式

2022-09-21 10:01:16 浏览数 (1)

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);
    }
}

使用场景

控制命令的执行,例如异步、延迟、排队执行命令,撤销命令,存储命令,命令记录日志等。

例如游戏后端处理客户端传来的命令,主线程接收命令后将命令放入队列,由其他线程执行(线程池),达到异步处理的目的。

其他

目前已经学了十来种设计模式了,发现自己之前对设计模式的理解有些问题。以前觉得设计模式重点是代码实现方式,这样在看代码时才能知道这是用了啥设计模式。后来发现设计模式重在使用场景,解决的痛点。代码实现很多都差不多的。

0 人点赞