
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.2 简单工厂模式概述
5.2.1 简单工厂模式的定义
简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory Method Pattern),简单来说,简单工厂模式有一个具体的工厂类,可以生成多个不同的产品,属于创建型设计模式。简单工厂模式不在GoF 23种设计模式之列。
5.2.2 简单工厂模式的应用场景
对于产品种类相对较少的情况,考虑使用简单工厂模式可以很方便地创建所需产品。使用简单工厂模式的客户端只需要传入工厂类的参数,不需要关心如何创建对象的逻辑。
5.2.3 简单工厂模式的UML类图
简单工厂模式的UML类图如下。

由上图可以看到,简单工厂模式主要包含3个角色。
(1)简单工厂(SimpleFactory):是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
(2)抽象产品(IProduct):是简单工厂创建的所有对象的父类,负责描述所有实例共有的公共接口。
(3)具体产品(ConcreteProduct):是简单工厂模式的创建目标。
5.2.4 简单工厂模式的通用写法
以下是简单工厂模式的通用写法。

