摘要:
1. 外观模式: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。外观模式的使用场合:A: 设计初期阶段,应该要有意识的将不同的两个层分离。B: 在开发阶段,子系统往往由于不断的重构演化而变得越来越复杂,C: 在维护一个遗留的大系统时,可能这个系统已经非常难以维护和扩展。将 和复杂的子系统打交道的任务交给 Facade, 客户端只需要调用简洁的Facade方法。实例:subsystem.h subsystem.cpp#ifndef SUBSYSTEM_H#define SUBSYSTEM_H#includeusing namespace s 阅读全文
摘要:
1. 模板方法模式: 定义一个操作中的算法骨架,而将一些操作延迟到子类, 模板方法模式使得子类可以不改变一个算法的结构既可以重定义该算法的某些特定步骤。当不变和可变的行为在方法的子类实现中混在一起的时候,不变的行为就会子类中重复出现,通过模板方法模式可以将这些不变的行为搬到一个地方,这样就可帮助子类摆脱重复的不变行为的纠缠。模板方法模式就是提供一个很好的代码复用平台。实例: template.h template.cpp 模板#ifndef TEMPLATE_H#define TEMPLATE_Hclass Template{public: Template(); void tem... 阅读全文
摘要:
1. 原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。。。注意: 拷贝的时候是浅拷贝 还是 深拷贝, 来考虑是否需要重写拷贝构造函数。关键在于: virtual Prototype* clone(); 克隆函数。。。返回一个克隆的对象。实例: 以深拷贝为例prototype.h prototype.cpp#ifndef PROTOTYPE_H#define PROTOTYPE_Hclass Prototype{public: int a; char *str; Prototype(int b, char* cstr); Prototype(c... 阅读全文
摘要:
http://www.cnblogs.com/BlueTzar/articles/1223313.htmlC++拷贝构造函数(深拷贝,浅拷贝)对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#includeusingnamespacestd;classCExample{private: inta;public: CExample(intb) {a=b;} voidShow() {coutusingnamespacestd;classCExample{ 阅读全文
摘要:
1. 工厂方法模式 定义一个用于创建对象的接口, 让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。和简单工厂模式相比:A: 简单工厂模式最大的优点在于工厂类中包含有必要的逻辑判断, 根据客户端的选择条件动态实例化相关的类,对客户端来说去除了与具体产品的依赖。但缺点是 添加新产品时 需要修改工厂类 case, 违背了 "开放-封闭" 原则。B: 工厂方法模式实现时,需要由客户端来决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在,只是由工厂类内部转移到客户端。实例: operation.h-- operation.cpp#ifndef OPERATION 阅读全文