俺有一个MM,她家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了碗杂酱面,哪知道他说:“我同时给我姐姐三个男朋友送COMMAND,就数你最小气,才请我吃面。”
定义
命令模式(Command),将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作
理解
Command模式也叫命令模式 ,是行为设计模式的一种。Command模式通过被称为Command类封装了对目标对象的调用行为以及调用参数。
结构
结构
![JAVA设计模式与追MM:[6]命令模式](http://www.52ij.com/uploads/allimg/160402/231535G94-0.jpg)
优点:解耦了发送者和接受者之间联系。
缺点:1个类变成3个类,多了好多类。
应用场景
在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。
但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们把这种专门的类称作command类。
整个调用过程比较繁杂,或者存在多处这种调用。这时,使用Command类对该调用加以封装,便于功能的再利用
调用前后需要对调用参数进行某些处理。
调用前后需要进行某些额外处理,比如日志,缓存,记录历史操作等。
角色和职责
Command
Command抽象类。
ConcreteCommand
Command的具体实现类。
Receiver
需要被调用的目标对象。
Invorker
通过Invorker执行Command对象。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
