- 设计模式就该这样学:基于经典框架源码和真实业务场景
- 谭勇德(Tom)
- 408字
- 2021-04-01 07:37:59
5.2 简单工厂模式概述
5.2.1 简单工厂模式的定义
简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory Method Pattern),简单来说,简单工厂模式有一个具体的工厂类,可以生成多个不同的产品,属于创建型设计模式。简单工厂模式不在GoF 23种设计模式之列。
5.2.2 简单工厂模式的应用场景
对于产品种类相对较少的情况,考虑使用简单工厂模式可以很方便地创建所需产品。使用简单工厂模式的客户端只需要传入工厂类的参数,不需要关心如何创建对象的逻辑。
5.2.3 简单工厂模式的UML类图
简单工厂模式的UML类图如下。
![img](https://epubservercos.yuewen.com/A1F36C/17725769807799506/epubprivate/OEBPS/Images/txt007_1.jpg?sign=1739068953-qk7ABLp80VsApiYhCeGvYBk6O9VK8LXH-0-2ea0906b0927a73c9d9b8a226397a75c)
由上图可以看到,简单工厂模式主要包含3个角色。
(1)简单工厂(SimpleFactory):是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
(2)抽象产品(IProduct):是简单工厂创建的所有对象的父类,负责描述所有实例共有的公共接口。
(3)具体产品(ConcreteProduct):是简单工厂模式的创建目标。
5.2.4 简单工厂模式的通用写法
以下是简单工厂模式的通用写法。
![img](https://epubservercos.yuewen.com/A1F36C/17725769807799506/epubprivate/OEBPS/Images/txt007_2.jpg?sign=1739068953-E1xY4Qba7c4uy64ctONl9qT1ZHV8VMq8-0-1e460e4ccdba89bb5ae706bc53762d28)
![img](https://epubservercos.yuewen.com/A1F36C/17725769807799506/epubprivate/OEBPS/Images/txt007_3.jpg?sign=1739068953-o7pwsBGzc3KoM9rTxKRvOVL83H7yr3oU-0-19d017cc96cb5a4902f7ef8c4a8d8097)