设计模式笔记之 - Command & Active Object

Command模式:最简单的模式之一,虽然简单,但是也需要我们灵活的发现它的用武之地,充分的发挥面向对象的思想,巧妙的应用就会收到突出的效果。

       接口:模式的主要因素之一。

       简单的接口代码:

 

None.gif      public   interface  ICommand
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
void Do();
ExpandedBlockEnd.gif    }

 

       适用的场合:

1.  简单的Command:主要出现在需要在多个对象执行相似的动作,比如开关,电视机有开关,电风扇有开关,点灯也有开关,这样的操作就可以用Command模式来做,通过调用接口的Do()方法,执行所有电器的开关动作,而不管传进来的对象是什么。

2.  事务操作:可以集中所有事务于一个方法里调用,封装了内部处理,比如数据验证

a)         实体上解耦和时间上解耦,分开数据验证和数据操作;

b)        时间上解耦,可以达到在处理事务的时候先验证完成所有的,在一起执行。

3.  UNDO:可以给Command模式增加Undo()方法,例如可以更灵活的处理多个对象的堆栈方法,一个画图程序,用户调用了相应图形对象的Do()方法,该对象在相应的地方执行完后即被压入堆栈,当用户点击撤销按钮的时候,该对象被弹出,然而只需要调用该对象的Undo()方法即可轻松的撤销操作,因为通常一个对象的Do()方法和Undo()方法在实现上都是相近的。

4.  Active Object模式:Command模式的变种,主要用在链表或ArrayList之中的对象的执行相应的通用接口方法。此模式用在多线程的处理是一个很好的实践可以实现RTCRTC的名字意味着Command实例不会阻塞。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

Command模式的简单性掩盖了它的多功能性。Command模式可以应用于多种不同的美妙的用途,范围设计数据库和事务操作、设备控制、多线程核心以及GUIdo/undo管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值