随笔分类 - 设计模式
摘要:单例模式很好理解,就是只允许创建该类的一个实例。 经典版 构造函数声明为private,则只有Singleton类的代码才能调用构造函数。 利用局部静态变量达到实例只有一个的要求。 局部静态变量的另一个优点是lazy initialization,只有在第一次调用getInstance()时才创建该
阅读全文
摘要:工厂模式主要用来封装对象的创建,有3种分类:简单工厂(simple factory)、工厂方法(factory method)、抽象工厂(abstract factory)。简单工厂包括3种组成元素:抽象产品、具体产品、具体工厂(简单工厂),结构图如下:C++实现://抽象产品class Car...
阅读全文
摘要:装饰者模式: 能够动态地往一个类中添加新的行为。相比继承是在编译时添加行为,装饰模式是在运行时添加行为。星巴克咖啡是讲述装饰者模式的一个很好的例子。 假设现在有两种咖啡:HouseBlend、DarkRoast,同时有两种调料:Milk、Mocha。那么此时我们可以给顾客提供以下咖啡:House...
阅读全文
摘要:观察者模式: 定义了subject和observer之间的一对多依赖,当subject状态改变时,所有的observer都会收到通知。结构图:C++实现:class Observer;class Subject {public: virtual void attach(Observer *o...
阅读全文
摘要:策略模式: 定义了一个算法族,分别把每个算法封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。结构图:C++实现:class calculateStrategy {public: virtual int calculate(int value1, int value2...
阅读全文

浙公网安备 33010602011771号