简单工厂模式(Simple Factory Pattern)
一、概念
简单工厂模式也叫静态工厂模式
,是指由 一个工厂
决定创建哪一种产品类的实例,但它不属于GoF的23种设计模式
。简单工厂模式适用于工厂类负责创建的对象较少的场景。(不属于标准的设计模式)
- 该工厂类一般是使用静态方法,根据我们传参的不同,
返回不同的派生自同一个父类 或 实现同一接口
的实例对象。
二、参与者
抽象产品:工厂创建的具体对象的父类或者共同接口
具体产品:是抽象产品的具体实现
产品工厂类:负责所有对象实例的内部逻辑
调用者:
三、代码例子
BMW工厂 生产 BMW320和BMW520
抽象产品:BMW
具体产品:BMW320 和 BMW520
产品工厂类:SimpleFactory
四、UML图
五、优缺点
(一)优点:
- 代码编写简单
- 工厂都具有的优点:通过工厂创建对象,不关心对象实例化的具体逻辑
(二)缺点:
- 多个产品的创建逻辑耦合在一起,不符合
单一职责原则
,一旦工厂出现问题,整个系统都要受到影响。 - 系统扩展困难,一旦添加新产品就得修改工厂逻辑,
违反了“开闭原则”