摘要:        
状态模式(State)允许一个对象在其内部状态改变的时候改变行为。结构图为:汽车有不同的档速,当行车时,经常需要换档,换档是从低到高,换档的过程就是状态的改变过程。实现代码://Car.hclassState;classCar{public:Car(State*);virtual~Car();voidSetState(State*);voidPull();private:State*m_pState;};#include"stdafx.h"#include"Car.h"#include"State.h"#include<iost    阅读全文
posted @ 2012-03-26 18:02
笑笑小白
阅读(254)
评论(0)
推荐(0)
        
            
        
        
摘要:        
命令模式(Command)的目标是将一个请求封装成一个对象,因此可以参数化多个客户的不同请求,将请求排除,记录请求日志,并支持撤消操作。 结构图如下:其实现思想是将一个请求封装到一个类中(Command),再提供接收对象(Receiver),最后Command命令由Invoker调用。以一个电灯开关为例,命令的执行、不执行相对于开关的打开、关闭操作,由开关发出命令,电灯接收命令,结构图如下:实现代码://Light.hclassLight{public:Light();virtual~Light();voidTurnOn();voidTurnOff();};//Light.cpp#includ    阅读全文
posted @ 2012-03-26 18:01
笑笑小白
阅读(255)
评论(0)
推荐(0)
        
            
        
        
摘要:        
责任链模式(Chain of Responsibility)的目标是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。结构图为:用一个采购的例子来说明,采购人员在进行采购前需经过上级部门的批准,对于不同金额的采购分别要由不同级别的上级才能审批,假设1万以内的采购需要主管批准,10万以内的需要主管向总经理申请批准,超过10万总经理向需董事长宴请批准,这时对于采购的审批过程就形成了一条责任链,对于不同的采购请求就需要一级一级的向上传递,并最终传递到最上级然后自行处理。结构图如下:实现代码://Process    阅读全文
posted @ 2012-03-26 18:00
笑笑小白
阅读(590)
评论(0)
推荐(0)
        
            
        
        
摘要:        
0 引言0.1 设计模式解析(总序)0.2 设计模式解析后记0.3 与作者联系1 创建型模式1.1 Factory模式1)为了提高内聚(Cohesion)和松耦合(Coupling) ,我们经常会抽象出一些类的公共接口以形成抽象基类或者接口。 这样我们可以通过声明一个指向基类的指针来指向实际的子类实现,达到了多态的目的。这里很容易出现的一个问题 n 多的子类继承自抽象基类,我们不得不在每次要用到子类的地方就编写诸如 new ×××;的代码。这里带来两个问题 1)客户程序员必须知道实际子类的名称(当系统复杂后,命名将是一个很不好处理的问题,为了处理可能的名字冲突,有    阅读全文
posted @ 2012-03-26 17:23
笑笑小白
阅读(983)
评论(0)
推荐(0)
        
                    
                
浙公网安备 33010602011771号