设计模式(4)-抽象工厂模式

抽象工厂模式是什么?前面两节分别介绍了简单工厂模式和工厂模式。其中,简单工厂模式提供了单个创建接口,通过指定入参来创建不同的具体产品,比如水果农场例子中的苹果和葡萄。工厂模式则利用多态性,采用抽象工厂和具体的苹果工厂、葡萄工厂来实现创建水果对象的功能,生产新的水果只需添加新的具体工厂即可,符合“开闭原则”。 工厂模式中,一个抽象工厂可以处理一种抽象产品,那么,如果是两种抽象产品呢?如果这两种...

发布于 设计模式

设计模式(3)-工厂模式

工厂模式是什么?工厂模式又称为虚拟构造子模式或多态工厂模式,是在简单工厂模式的基础上,将核心角色“工厂类”改为层次继承结构,提取出一个抽象工厂的角色,由对应具体产品的具体工厂类来继承此抽象工厂,并提供抽象工厂的多态性,对外提供统一的产品创建接口。 工厂模式示意图如下所示。可以看出,创建产品的职责不再和简单工厂模式那样,集中在单个工厂类,而是分散到各具体工厂类,这样,既继承了简单工厂模式的优点...

发布于 设计模式

设计模式(2)-简单工厂模式

简单工厂模式是什么?简单工厂是指在基类中对一系列具有相同行为的对象按需创建的方法。被创建的对象通常具有共同的基类。 类图如下: 简单工厂示例:水果 /** * 简单工厂模式 */#include <iostream>#include <string>#include <algorithm>class Fruit {public: virt...

发布于 设计模式