命令模式

文档地址:《设计模式之禅》​​​​​​​

切入故事: 项目经理也难当

定义: Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoable operations.(将一个请求封装成一个对象, 从而让你使用不同的请求把客户端参数化, 对请求排队或者记录请求日志, 可以提供命令的撤销和恢复功能。 )

通用类图:

                

            ● Receive接收者角色

                    该角色就是干活的角色, 命令传递到这里是应该被执行的, 具体到我们上面的例子中就是Group的三个实现类。

            ● Command命令角色( 命令模式的核心)

                    需要执行的所有命令都在这里声明。

            ● Invoker调用者角色

                    接收到命令, 并执行命令。 在例子中, 我(项目经理) 就是这个角色。

优点:

            1: 类间解耦

            2: 可扩展性

            3: 命令模式结合其他模式会更优秀

                     命令模式可以结合责任链模式, 实现命令族解析任务; 结合模板方法模式, 则可以减少Command子类的膨胀问题

缺点: Command的子类会特别多,非常大

使用场景:具有 命令的地方

个人总结:

            命令模式是一个高内聚的模式。

           *:在项目中通过有意义的类名或命令名处理命令角色和接收者角色的耦合关系(这就是约定) , 减少高层模块(Client类) 对低层模块(Receiver角色类) 的依赖关系, 提高系统整体的稳定性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值