设计模式——再谈工厂模式
2023-09-14 08:57:00 时间
工厂模式,也叫做说虚构造器,在简单工厂中间插入了一个具体产品工厂,这个工厂知道产品构造时候的具体细节,而简单工厂模式的产品具体构造细节是在一个个if/else分支,或者在switch/case分支里面的。工厂模式的好处就在于将工厂和产品之间的耦合降低,将具体产品的构造过程放在了具体工厂类里面。在以后扩展产品的时候方便很多,只需要添加一个工厂类,一个产品类,就能方便的添加产品,而不需要修改原有的代码。而在简单工厂中,如果要增加一个产品,则需要修改工厂类,增加if/else分支,或者增加一个case分支,工厂模式符合软件开发中的OCP原则(open close principle),对扩展开放,对修改关闭。
有人做如下的比较:
工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
相关文章
- 设计模式之访问者模式
- 设计模式——代理模式
- 设计模式的C语言应用-适配及系列模式-第六章
- 设计模式(十一)代理模式Proxy(结构型)
- C#设计模式——代理模式(Proxy Pattern)
- C#设计模式——生成器模式(Builder Pattern)
- 《Android源码设计模式》--抽象工厂模式
- 【设计模式】空对象模式
- iOS开发那些事-iOS常用设计模式–委托模式
- 不一样的抽象工厂模式(设计模式七)
- 简单工厂模式(设计模式02)
- PHP设计模式之——工厂模式
- 简单工厂模式(设计模式02)
- 熬夜学Java语言-设计模式之简单工厂模式
- C++设计模式详解之装饰者模式解析
- 设计模式之抽象工厂模式
- 设计模式初学者笔记:Factory Method模式
- 设计模式回顾——单例模式(C++)
- 设计模式学习总结(二)——工厂模式
- 大话设计模式C++实现-文章7章-代理模式
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 【大话设计模式】——简单工厂模式
- Java开发篇——设计模式(3)面试被问工厂模式?不要怕看这里!
- 设计模式之桥接模式
- 设计模式(Python)-简单工厂,工厂方法和抽象工厂模式
- 设计模式(Python语言)----工厂方法模式
- 设计模式C++实现——观察者模式