简单工厂模式学习总结

简单工厂模式

【作用】:将对象的创建与使用分离(单一职责原则)
【实现】:定义一个工厂类,根据不同参数返回不同类的实例,被创建的实例有共同父类

结构图

我去

  • Factory(工厂角色):工厂角色即工厂类,它是简单工厂模式的核心,负责实现创建所有产 品实例的内部逻辑
  • Product (抽象产品角色):它是工厂类所创建的所有对象的父类,封装了各种产品对象的 公有方法.
  • ConcreteProduct(具体产品角色):它是简单工厂模式的创建目标

简化的简单工厂模式

为了简化简单工厂模式,我们可以将抽象产品类和工厂类合并,将静态工厂方法移至抽象产品类中

结构图

我去

优缺点
优点
  1. 工厂类包含必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以 免除直接创建产品对象的职责
  2. 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可
  3. 通过引入配置文件,可以在不修改任何客户端代码的情况下更换新的具体产品类
缺点
  1. 由于工厂类集中了所有产品的创建逻辑,职责过重,违背了“单一职责原则”
  2. 增加系统中类的个数,增加了系统的复杂 度和理解难度。
  3. 添加新产品就不得不修改工厂逻辑,违背了”开闭原则”

适用场景
  1. 工厂类负责创建的对象比较少
  2. 客户端只知道传入工厂类的参数,对于如何创建对象并不关心

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值