06 命令模式(不用)

将动作的请求者 和 执行者 解耦.

将军命令士兵打仗,  但是将军并不知道是哪个士兵.  所以 命令本身也是一个对象, 一个类.

这个命令, 进攻, 可以同时传递命令给 弓箭手, 刀斧手 等各种士兵进行进攻. 所以等于说把这个"命令" 本身抽象成一个类.

这样, 将军只需要面对的是“命令”对象来发布,而士兵也只需要面对“命令” 来执行.

对象有哪些:

将军, invoker, 发布命令

命令, MyCommand, 命令具体(一般是一个接口, execute()执行命令, undo()撤销命令), 还需要有一个具体的命令类ConcreteCommand实现这个接口.

士兵, recever, 具体执行命令

例如智能生活项目, 也就是我们有很多智能家电, 比如有智能电灯,智能电饭锅, 智能电视等.

命令模式, 比较麻烦. 可能导致有过多的具体的命令类, 造成复杂度, 所以还是不推荐使用吧.

 

posted @ 2020-03-21 19:17  神之一招  阅读(199)  评论(0编辑  收藏  举报