简单工厂模式
概述
定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类
在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法(Static Factory Method)
需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无需知道其实现过程
结构
其中工厂类为:TankFactory
产品类为:Tank
代码实现
1 |
|
优缺点
优点
- 工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。客户端可以免除直接创建产品对象的职责
- 客户端无需知道所创建具体产品的类名,只需知道参数即可
- 也可以引入配置文件,在不修改客户端代码的情况下更换和添加新的具体产品类
缺点
- 工厂类集中了所有产品的创建逻辑,职责过重,一旦异常,整个系统将受影响
- 使用简单工厂模式会增加系统中类的个数(引入新的工厂类),增加系统的复杂度和理解难度
- 系统扩展困难,一旦增加新产品不得不修改工厂逻辑,在产品类型较多时,可能造成逻辑过于复杂
- 简单工厂模式使用了static工厂方法,造成工厂角色无法形成基于继承的等级结构。
简单工厂模式的适用环境
- 工厂类负责创建的对象比较少,因为不会造成工厂方法中的业务逻辑过于复杂
- 客户端只知道传入工厂类的参数,对如何创建对象不关心
简单工厂模式
https://carl-5535.github.io/2022/04/07/设计模式/工厂模式/