0
点赞
收藏
分享

微信扫一扫

Java设计模式 ->工厂模式



在工厂模式属于 创建型模式,该设计模式的核心思想是 解耦

何为解耦:平时创建对象通过new关键字来实现,如果更换对象,涉及到的对象都要进行一次改变,

如果采用工厂模式,只需要和工厂进行交互,达到和对象解耦,如果需要更换对象,在工厂里更换对象即可。


工厂模式三种写法


简单工厂模式(Simple Factory Pattern)产品的工厂

​1、由一个工厂对象决定创建出哪一种产品类的实例 ​

​2、简单工厂模式不属于GOF23种设计模式​

​3、简单工厂适用于工厂类负责创建的对象比较少的情形,对象变化较少的场景。 ​

​4、源码:Calendar类的getInstance()方法 ​

​5、缺点:工厂类责任重大,不方便扩展,不适合构建产品结构复杂的产品 ​

工厂方法模式(Factory Method Pattern):工厂的工厂

​1、定义一个创建对象的接口,通过接口实现去确定实例化哪个类 ​

​2、符合设计原则的开闭原则,用户只需关注产品对应的工厂,无需关注细节 ​

​3、源码:slf4j的ILoggerFactory类 ​

​4、缺点:类的数量增多,增加系统的理解复杂度 ​

抽象工厂模式(Abastract Factory Pattern):复杂产品的工厂

​1、创建一系列相关或相互依赖对象的接口,无需指定具体的类 ​

​2、所有的产品以同样的接口出现,使客户端不依赖具体的实现 ​

​3、源码:Spring很多地方都用到了抽象工厂 ​

​4、缺点:规定了产品的标准,扩展相对困难,需要修改抽象工厂接口​


工厂模式总结


1、简单工厂和工厂方法本质上其实是差不多的,如果对于产品的数量或者类型是确定的,产品个数相对比较少的情况下,推荐使用。 ​

2、抽象工厂用来解决相对复杂的产品问题,适用于大量对象的生产创建等。​


举报

相关推荐

0 条评论