摘要:当存在部分子类共有的成员,但直接提到基类又不必要的情况下。使用装饰模式将那部分共有成员独立出来成为装饰类,包含这些部分共有的成员,需要这些成员的继承自该装饰类,不需要的直接继承基类。 base.h imp.h imp.cpp cpp include include "imp.h" using nam
阅读全文
随笔分类 - C++设计模式
摘要:当存在部分子类共有的成员,但直接提到基类又不必要的情况下。使用装饰模式将那部分共有成员独立出来成为装饰类,包含这些部分共有的成员,需要这些成员的继承自该装饰类,不需要的直接继承基类。 base.h imp.h imp.cpp cpp include include "imp.h" using nam
阅读全文
摘要:观察者模式常用于事件通知。 observer.h observer.cpp observer.cpp c++ include include "Observer.h" using namespace std; void CObserverProgressBar::Doprogress(float p
阅读全文
摘要:策略模式是将共同行为(函数)抽象成接口 这里使用工厂方法创建策略对象使用策略模式 strategyFactory.h strategyFactory.cpp strategy.h strategy.cpp
阅读全文
摘要:抽象工厂是对多个相关联的工厂基类创建接口的合并。 比如有二进制文件,文本文件,图片文件三个类型的三个分割操作对象和三个合并操作对象。 应用不管文件类型,但是要保证文件的分割和合并操作的是同一个类型的文件。那么最好就是把分割操作对象和合并操作对象的创建接口进行统一到一个工厂,保证执行分割和合并的是同一
阅读全文
摘要:工厂方式的核心是定义一个抽象工厂接口类,将对象的创建工作推迟到工厂接口类的子类中。 即不同对象创建依赖继承自工厂基类的关联工厂子类。 相较于简单工厂,工厂方法模式符合开闭原则,同时实现了解耦,但出现了类膨胀即所有产品的实例对象都需要有各自的工厂。 如果是要克服简单工厂模式的局部耦合缺陷,也可以考虑使
阅读全文
摘要:简单工厂模式是属于创建型模式,又叫做静态工厂。是由一个工厂对象(Factory)决定创建出哪一种产品类(Product)的实例。 工厂类是关键,包含了必要的逻辑判断. 即核心是将依赖的具体类型创建工作转移到工厂中去处理。 设计模式可以结合具体场景进行分析,但不要局限在具体场景中,本文直接使用模型进行
阅读全文
摘要:单例模式:在一个应用程序中,一个类有且只有一个实例,并提供一个访问它的全局访问点。 考虑到单例对象内存分配的时机分为懒汉模式,饿汉模式。 另外考虑到线程安全,三种推荐的实现方式:标准,Meyers,Double-Checked-Locking 结论: 如果使用vc6编译器,请放弃设计模式。 如果整个
阅读全文
摘要:Gang of Four的“Design Patterns: Elements of Resualbel Software”书将设计模式归纳为三大类型,共23种。 创建型模式:通常和对象的创建有关,涉及到对象实例化的方式。(共5种模式)行为型模式:通常和对象间通信有关。(共11种模式)结构型模式:描
阅读全文
|