更多参见:C++面试题系列:设计模式
http://c.biancheng.net/view/8385.html
1.创建型模式
工厂模式属于创建型模式
创建型模式的关注点是“怎样创建对象”,他将对象的创建与使用分离。这样做可以降低系统的耦合度,使用者不需要关系对象创建的细节,对象的创建工作由相关工厂来完成。
由上图可知,创建型模式分为以下几种。
- 单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。
- 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。
- 工厂方法(FactoryMethod)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。
- 抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。
- 建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。
工厂模式
定义:主要解决接口选择的问题。定义一个创建对象的接口,让其子类决定自己决定实例化哪个工厂类,使其创建过程延迟到子类进行。
根据实际业务场景的不同可以分为3种不同实现方式:简单工厂模式、工厂方法模式、抽象工厂模式。
简单工厂模式
在简单工厂模式中创建实例的方法通常为静态(static)方法,因此简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory Method Pattern)。
简单