`
insertyou
  • 浏览: 858753 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

3种工厂模式的比较

 
阅读更多

简单工厂:
一个具体工厂通过条件语句创建多个产品,产品的创建逻辑集中与一个工厂类。
客户端通过传不同的参数给工厂,实现创建不同产品的目的
增加新产品时,需要修改工厂类、增加产品类,不符合OCP原则

工厂方法:
一个工厂创建一个产品,所有的具体工厂继承自一个抽象工厂。
客户端先创建不同产品的工厂,再由工厂创建具体产品,产品的创建逻辑分散在每个具体工厂类中。
客户端只依赖于抽象工厂与抽象产品,不依赖任何具体的工厂与具体产品
增加新产品时,需要增加工厂类和产品类,符合OCP原则

抽象工厂:
一个具体工厂创建一个产品族,一个产品族是不同系列产品的组合,产品的创建的逻辑分在在每个具体工厂类中。所有的具体工厂继承自同一个抽象工厂。
客户端创建不同产品族的工厂,产品族的工厂创建具体的产品对客户端是不可见的。
增加新的产品族时,需要增加具体工厂类,符合OCP原则。
增加新产品时,需要修改具体工厂类和增加产品类,不符合OCP原则
如果没有应对“多系列对象创建”的需求变化,则没有必要使用抽象工厂模式,这时候使用简单的静态工厂完全可以。

上述3种模式都使客户端脱离了与具体产品的耦合,客户端不关注具体产品的生产方法。

分享到:
评论

相关推荐

    三种工厂模式java实现

    工厂模式完美实现代码,使用java,加入自己的思考方式

    qt工厂模式例子qt简单工程模式源码

    3. Qt工厂模式工程 4. Qt工厂模式例程 5. Qt工厂模式例子 6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // ...

    JAVA设计模式之3种工厂模式.doc

    JAVA设计模式之3种工厂模式

    设计模式之一 3种工厂模式解析源码

    对简单工厂与复杂工厂不熟悉的后者什么时候用,有很大的帮助

    java23种设计模式

    java23种设计模式,每一种模式都有详细的讲解,很全面,如果你想深入了解一下java23种设计模式,这会非常适合你的哦!上传乃为百度云连接,失效请留言。 内容: 001策略模式! N. B8 ~' D! f9 j+ g0 I 002观察者模式 ...

    32种设计模式

    C# 32种设计模式: 创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) ...

    java设计模式之工厂模式(3种完整免费提供).pdf

    java设计模式之工厂模式(3种完整免费提供).pdfjava设计模式之工厂模式(3种完整免费提供).pdfjava设计模式之工厂模式(3种完整免费提供).pdfjava设计模式之工厂模式(3种完整免费提供).pdfjava设计模式之工厂模式(3种...

    基于Java的设计模式大作业绘图系统【六种设计模式+文档】.zip

    本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。 具体实现过程、UML类图以及实现效果详见如下项目说明地址: ... 该系统为绘图系统,该系统通过...

    用Java实现23种设计模式

    用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...

    Java常用的3中设计模式代码即工厂模式、单例模式、观察者模式demo

    java 三种设计模式Demo 其中对单例模式做了详细的讲解,及性能和线程安全方面的优化其中Singleton.java为经典单例模式。

    设计模式-工厂模式

    设计模式-工厂模式 学习练习的代码 1.简单工厂模式 2.方法工厂模式 3.抽象工厂模式 4.模拟Spring Bean工厂练习

    3.java设计模式-创建者模式-抽象工厂模式.pdf

    java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是抽象工厂模式及应用场景和应用场景的代码事例。及各工厂模式的区别。

    软件开发中的23种设计模式

    23种模式(Pattern) 1、创建形模式: 1)、单用型:Singleton 2)、工厂方法型:Factory Method 3)、抽象工厂型:Abstract Factory 4)、原型:Prototype 5)、建造型:Builder 2、结构型模式:类与类之间的调用 1...

    Java中工厂模式案例

    1.简单工厂模式(simple factory)2.工厂方法模式(factory mathoud)3.抽象工厂模式(abstract factory)

    Java设计模式之工厂模式(Factory)

    还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。下面是使用工厂模式的两种情况: 1. 在编码时不能预见需要创建哪种类的实例。 2. 系统不应依赖于产品类实例如何被创建、组合和表达的...

    3. 工厂模式1

    3. 工厂模式1

    JAVA设计模式之工厂模式3种完整免费提供.pdf

    JAVA设计模式之工厂模式3种完整免费提供.pdf

    精品源码 C# 27种设计模式源代码

    3 工厂方法模式 3 组合模式 4 抽象工厂模式 4 代理模式 4 命令模式 5 迭代器模式 5 适配器模式 5 原型模式 6 简单工厂模式 6 解释器模式 6 享元模式 7 桥接模式 7 状态模式 8 结构型模式总结 8 责任链模式 9 创建型...

    3C调整音量进入工程模式的方法

    3C调整音量进入工程模式的方法3C调整音量

    c++ 设计模式 简单工厂模式

    简单工厂模式: 具体实现了一个计算器的代码,首先计算器应该具备对两个数字进行运算的功能,而运算的方法可以有很多种(最基础的有加,减,乘,除), 并且代码易于移植,这里是个console的应用台界面,也应该可以...

Global site tag (gtag.js) - Google Analytics