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

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

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

       简单的接口代码:

 

    public interface ICommand
    
{
        
void Do();
    }

 

       适用的场合:

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

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

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

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

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

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

 

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

posted on 2005-09-12 17:44  dragonpro  阅读(709)  评论(0编辑  收藏  举报

Free Web Counter