- 博客(10)
- 收藏
- 关注
原创 设计模式---职责链
一、功能 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。二、优缺点 客户不知道它的请求将被哪个对象处理。 三、实现 有两种实现思路。一种是自己先处理,处理不成功了再交给其他人处理。另一种是先交给别人处理,处理不成功了再自己处理。示例代码如下节所示。四、示例代码
2013-12-27 10:03:50 601
原创 设计模式---代理
一、功能 在直接访问对象不方便或不符合需要时,为这个对象提供一种代理,以控制对该对象的访问。 二、示例代码namespace DesignPattern_Proxy{ // class RealSubject class RealSubject { public: void Request() {} } ; // class Proxy class Pr
2013-12-27 10:02:04 682
原创 设计模式---外观
一、功能 为子系统中的各类提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。 二、优缺点 优点:用户不需要直接与子系统打交道,只需要与Facade交互就可以了,方便了对子系统的使用。三、示例代码namespace DesignPattern_Facade{ // class Subsystem_ClassA class Subsystem_Cl
2013-12-27 09:59:16 591
原创 设计模式---装饰
一、功能 动态地给一个对象添加一些额外的功能。 二、优缺点 优点:Decorator的目的是"动态的给一个对象添加一些额外的功能"。其关键之处在于"动态"和"对象"上。传统上依靠子类继承来实现功能的扩展,它针对的是整个类。但Decorator不使用继承,所以它只是针对单个对象实例进行功能的扩展。并且,从下面的示例代码中也可以看出,可以在运行时动态地、灵活地对功能进行组装。
2013-12-27 09:57:23 612
原创 设计模式---组成
一、功能 表示“部分-整体”关系,并使用户以一致的方式使用单个对象和组合对象。二、优缺点 优点:对于Composite模式,也许人们一开始的注意力会集中在它是如何实现组合对象的。但Composite最重要之处在于用户并不关心是组合对象还是单个对象,用户将以统一的方式进行处理,所以基类应是从单个对象和组合对象中提出的公共接口。 缺点:Composite最大的问题
2013-12-27 09:53:07 631
原创 设计模式---桥接
一、功能 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、示例代码namespace DesignPattern_Bridge{ // class Implementor class Implementor { public: virtual void OperationImp() = 0 ; } ; // class ConcreteImplem
2013-12-27 09:46:42 545
原创 设计模式---适配器
一、功能 将一个类的接口转换成客户希望的另外一个接口,解决两个已有接口之间不匹配的问题。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、示例代码 (1)class adapter namespace DesignPattern_Adapter{ // class Adaptee class Adaptee { public:
2013-12-27 09:40:28 648
原创 设计模式---单件
一、功能 保证一个类仅有一个实例。 二、示例代码class Singleton{public: static Singleton* Instance() ;protected: Singleton() {}private: static Singleton *_instance ; Singleton(const Singleton&) ; Singleto
2013-12-27 09:36:54 597
原创 设计模式---原型
一、功能 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 二、示例代码namespace DesignPattern_Prototype{ // class Prototype class Prototype //抽象基类 { public: virtual Prototype* Clone() = 0 ; } ; // clas
2013-12-11 19:44:10 673
原创 设计模式---工厂方法
一、功能 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 二、示例代码namespace DesignPattern_FactoryMethod{ class Product { /*...*/ } ; class ConcreteProduct : public Product { /*...*/
2013-12-09 19:21:09 598
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人