版权声明:本文为博主原创文章,未经允许不得转载,如有问题,欢迎指正,谢谢! https://blog.csdn.net/cbk861110/article/details/88214098
设计模式项目源码请移步:https://github.com/caobaokang419/WeatherApp(欢迎Github Fork&Star,代码设计模式&框架设计实现不妥之处,请帮忙指正),谢谢!
状态模式(Command Pattern)
1. 概念
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.
将请求封装成对象,以便使用不同的请求、队列、或日志将客户端参数化,同时提供可撤销功能。
2. 应用场景
命令模式可以将“动作的请求者”从“动作的执行者”对象中解耦;被解耦的二者之间通过命令对象进行沟通。
3. 优点
a. 解耦:Invoker和Receiver完全解耦,不需要直接沟通。Command对象中封装了Receiver,及其要做的事情。
b. 可扩展:日后增加Command的子类,即可增加功能。
c. 可结构其他模式,例如责任链模式、模板方法模式。
4. 缺点
Command子类可能会非常多。(可结合模板方法模式解决)
5. 代码实践:TBD