摘要: 命令模式(Command)的目标是将一个请求封装成一个对象,因此可以参数化多个客户的不同请求,将请求排除,记录请求日志,并支持撤消操作。 结构图如下:其实现思想是将一个请求封装到一个类中(Command),再提供接收对象(Receiver),最后Command命令由Invoker调用。 以一个电灯开关为例,命令的执行、不执行相对于开关的打开、关闭操作,由开关发出命令,电灯接收命令,结构图如下:#include iostreamusing namespace std;class Light {public: Light(){}; virtual ~Light(){}; void Turn 阅读全文
posted @ 2010-02-04 23:35 maxweii 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 作用: 为其他对象提供一种代理以控制对这个对象的访问。UML结构图: 抽象基类:1)Subject:定义了Proxy和RealSubject的公有接口,这样就可以在任何需要使用到RealSubject的地方都使用Proxy. 解析: Proxy其实是基于这样一种时常使用到的技术-某个对象直到它真正被使用到的时候才被初始化,在没有使用到的时候就暂时用Proxy作一个占位符。这个模式实现的要点就是Proxy和RealSubject都继承自Subject,这样保证了两个的接口都是一致的。#include iostream#include stdlib.husing namespace std 阅读全文
posted @ 2010-02-04 23:03 maxweii 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 抽象基类:  1)Abstraction:某个抽象类,它的实现方式由Implementor完成.  2)Implementor:实现类的抽象基类,定义了实现Abastraction的基本操作,而它的派生类实现这些接口.  接口函数:  1)Implementor::OperationImpl:定义了为实现Abstraction需要的基本操作,由Implementor的派生类实现之,而在Abstraction::Operation函数中根据不同的指针多态调用这个函数.  解析:  Bridge用于将表示和实现解耦,两者可以独立的变化.在Abstraction类中维护一个Implementor类指 阅读全文
posted @ 2010-02-04 16:56 maxweii 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 创建型模式:Abstract Factory(抽象工厂):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Builder(生成器):将一个复杂对象的构件与它的表示分离,使得同样的构建过程可以创建不同的表述。Factory Method(工厂方法):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。Prototype(原型):用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。Singleton (单例):保证一个类仅有一个实例,并提供一个访问它的全局访问点。结构型模式: Adapter(适配器) 阅读全文
posted @ 2010-02-04 10:00 maxweii 阅读(895) 评论(0) 推荐(0) 编辑