Android 设计模式入门到精通之十四:命令模式(Command Pattern)

状态模式(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. 应用场景 --比如任务Runnable.run()和Callable.call()

命令模式可以将“动作的请求者”从“动作的执行者”对象中解耦;被解耦的二者之间通过命令对象进行沟通。

3. 优点

a. 解耦:Invoker和Receiver完全解耦,不需要直接沟通。Command对象中封装了Receiver,及其要做的事情。

b. 可扩展:日后增加Command的子类,即可增加功能。

c. 可结构其他模式,例如责任链模式、模板方法模式。

4. 缺点

Command子类可能会非常多。(可结合模板方法模式解决)

5. 代码实践:

JDK: 

• java.lang.Runnable

• javax.swing.Action

Android: TBD

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容