暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

设计模式之工厂模式

PiPiD 2020-09-01
152

设计模式之工厂模式

简单工厂

  • 当每个对象的创建逻辑都比较简单的时候,将多个对象的创建逻辑放到一个工厂类里

  • if-else 逻辑放在工厂类里

工厂方法

  • 当每个对象的创建逻辑都比较复杂的时候,为了避免设计一个过于庞大的简单工厂类,使用工厂方法

  • 将不同创建逻辑放到不同工厂类中,先用一个工厂类的工厂来来得到某个工厂,再用这个工厂来创建

  • if-else 逻辑在工厂类的工厂中

适用工厂模式的参考标准

  • 1. 封装变化:创建逻辑有可能变更,封装成工厂类之后,创建逻辑的变更对调用者透明

  • 2. 代码复用:创建代码抽取到独立的工厂类中之后可以复用

  • 3. 隔离复杂性:封装复杂的创建逻辑,调用者无需了解如何创建对象

  • 4. 控制复杂度:将创建代码抽离出来,让原本的函数或类职责更单一,代码更简洁

工厂模式和 DI 容器的区别

  • 一个工厂类只负责某个类或某一组相关类对象(继承自同一个抽象类或实现同一个接口)的创建

  • DI 容器负责整个应用所有类的创建

  • DI 容器底层最基本的设计思路就是基于工厂模式的。

  • DI 容器相当于一个大的工厂类,负责在程序启动时,根据配置事先创建好对象。


文章转载自PiPiD,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论