摘要: 作用:  将一个类的接口转换成客户希望的另外一个接口。Adapt 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。  UML示意图  1)采用继承原有接口类的方式  2)采用组合原有接口类的方式  解析:  Adapt模式其实就是把完成同样的一个功能但是接口不能兼容的类桥接在一起使之可以在一起工作,这个模式使得复用旧的接口成为可能.  实现:  Adapt模式有两种实现办法,一种是采用继承原有接口类的方法,一种是采用组合原有接口类的方法,这里采用的是第二种实现方法.#include iostreamusing namespace std;// 需要被Adapt的类class 阅读全文
posted @ 2010-02-07 13:51 maxweii 阅读(254) 评论(0) 推荐(0) 编辑
摘要: #include iostreamusing namespace std;// 虚拟基类,所有原型的基类,提供Clone接口函数class Prototype{public: Prototype(){} virtual ~Prototype(){} virtual Prototype* Clone() = 0;};// 派生自Prototype,实现Clone方法class ConcretePrototype1 : public Prototype{public: ConcretePrototype1(); ConcretePrototype1(const ConcretePrototy 阅读全文
posted @ 2010-02-07 11:11 maxweii 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 作用:保证一个类仅有一个实例,并提供一个访问它的全局访问点。  UML结构图:  解析:  Singleton模式其实是对全局静态变量的一个取代策略,上面提到的Singleton模式的两个作用在C++中是通过如下的机制实现的:1)仅有一个实例,提供一个类的静态成员变量,大家知道类的静态成员变量对于一个类的所有对象而言是惟一的 2)提供一个访问它的全局访问点,也就是提供对应的访问这个静态成员变量的静态成员函数,对类的所有对象而言也是惟一的.在C++中,可以直接使用类域进行访问而不必初始化一个类的对象.  下面的实现其实是Singleton的一个简单实现,并不是特别的通用,一般的,如果一个项目中需 阅读全文
posted @ 2010-02-07 11:06 maxweii 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 作用:  在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态.  UML结构图:  解析:  Memento模式中封装的是需要保存的状态,当需要恢复的时候才取出来进行恢复.原理很简单,实现的时候需要注意一个地方:窄接口和宽接口.所谓的宽接口就是一般意义上的接口,把对外的接口作为public成员;而窄接口反之,把接口作为private成员,而把需要访问这些接口函数的类作为这个类的友元类,也就是说接口只暴露给了对这些接口感兴趣的类,而不是暴露在外部.下面的实现就是窄实现的方法来实现的.#include string#includ 阅读全文
posted @ 2010-02-07 00:12 maxweii 阅读(227) 评论(0) 推荐(0) 编辑