命令模式的定义
命令模式(Command Pattern)
第一点:将一个请求封装成一个对象,从而让用户使用不同的请求将客户端参数化。
第二点:对请求排队或者记录请求日志,以及支持撤销操作
通俗的讲:让我程序扩展性更加好,降低耦合度
命令模式的应用场景
当需要将方法调用包装成一个对象,以延时方法调用,或者让其他组件在对其内部现实细节不了解的情况下进下调用的时候可以使用命名模式。
场景一:应用程序支持撤销和恢复
场景二:记录请求日志,当系统故障这些命名可以重新被执行
场景三:想用对象参数化一个动作以执行操作,并且用不同命令对象来替换回调函数
命令模式
命令模式的角色划分
角色一:接收者
角色二:命令接口
角色三:具体命名
角色死:请求者
命令模式的原理案例
搭建以上角色:
1、角色一:接收者->Reciever
2、角色二:命名接口->CommandProtocol(协议)
3、角色三:具体命令->ConcrateCommand
4、角色四:请求者->Invoker
命令模式的具体案例
确定角色:
1、命名接口->ComputerCommandProtocol
2、具体命名->实现类
两个:开机命令、关机命令
开机:MacStartUpCommand(遵循我们的协议->接口-> 标准)
关机:MacShutDownCommand
3、接收者->电脑->MacComputer
4、请求者->Invoker
注意:面向协议编程->将所有的功能抽象为协议
关联角色:
首先:关联请求者
其次:实现接收者
最后:实现命令角色
代码实现逻辑详见GitHub地址:https://www.baidu.com
问题
根据上述面代码的问题可以看出这种命令模式类大多,严重影响开发的效率及代码的维护量,所以需要进行命令模式的优化,解决代码的冗余提升效率。
网友评论