设计模式之工厂模式
简单工厂
当每个对象的创建逻辑都比较简单的时候,将多个对象的创建逻辑放到一个工厂类里
if-else 逻辑放在工厂类里
工厂方法
当每个对象的创建逻辑都比较复杂的时候,为了避免设计一个过于庞大的简单工厂类,使用工厂方法
将不同创建逻辑放到不同工厂类中,先用一个工厂类的工厂来来得到某个工厂,再用这个工厂来创建
if-else 逻辑在工厂类的工厂中
适用工厂模式的参考标准
1. 封装变化:创建逻辑有可能变更,封装成工厂类之后,创建逻辑的变更对调用者透明
2. 代码复用:创建代码抽取到独立的工厂类中之后可以复用
3. 隔离复杂性:封装复杂的创建逻辑,调用者无需了解如何创建对象
4. 控制复杂度:将创建代码抽离出来,让原本的函数或类职责更单一,代码更简洁
工厂模式和 DI 容器的区别
一个工厂类只负责某个类或某一组相关类对象(继承自同一个抽象类或实现同一个接口)的创建
DI 容器负责整个应用所有类的创建
DI 容器底层最基本的设计思路就是基于工厂模式的。
DI 容器相当于一个大的工厂类,负责在程序启动时,根据配置事先创建好对象。
文章转载自PiPiD,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




