Go设计模式 - 简单工厂模式
4. 简单工厂模式
4.1 简单工厂模式角色和职责
简单工厂模式并不属于GoF的23种设计模式。他是开发者自发认为的一种非常简易的设计模式,其角色和职责如下:
工厂(Factory)角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
抽象产品(AbstractProduct)角色:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
具体产品(Concrete Product)角色:简单工厂模式所创建的具体实例对象。
4.2 简单工厂模式实现
简单工厂方法模式的实现代码如下:
上述代码可以看出,业务逻辑层只会和工厂模块进行依赖,这样业务逻辑层将不再关心Stationery类是具体怎么创建基础对象的。
4.3 简单工厂方法模式的优缺点
优点:
- 实现了对象创建和使用的分离。 2. 不需要记住具体类名,记住参数即可,减少使用者记忆量。
缺点:
- 对工厂类职责过重,一旦不能工作,系统受到影响。 2. 增加系统中类的个数,复杂度和理解度增加。 3. 违反“开闭原则”,添加新产品需要修改工厂逻辑,工厂越来越复杂。
适用场景:
- 工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。 2. 客户端只知道传入工厂类的参数,对于如何创建对象并不关心。
Go设计模式 - 简单工厂模式
http://coderedeng.github.io/2022/05/10/Go设计模式 - 简单工厂模式/