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

关于设计模式中各种工厂的理解

阅读更多

对于Java的工厂模式,简单工厂、工厂方法、抽象工厂之间的区别一直挺难区分,今天无意中发现一博客中描述的比较形象。特意转载下。

 

 

 

 简单工厂模式

首先,如果一个客户要用到一款手机,一般的做法是客户去创建一款手机,然后拿来用:

image 

这时,客户需要知道怎么去创建一款手机,客户和手机就紧密耦合在一起了.为了降低耦合,就出现了工厂类,把创建手机的操作放到了工厂里面去,客户直接使用工厂的创建手机方法,传入想要的手机型号就行了,而不必去知道创建的细节.

image

 

 

工厂方法模式

随着手机种类越来越多,简单工厂模式出现了弊端,每次新加入手机品种,工厂类都要加入新的创建逻辑.这时我们就可以把工厂类定义成了接口,而每增加一种新的手机,就增加该手机对应工厂类的实现,这样工厂的设计就可以扩展了,而不必去修改原来的代码:

image

 

 抽象工厂模式

随着工厂规模的继续扩大,工厂开始生产充电器了.这时候工厂有二个系列的产品:手机和充电器.而手机必须使用对应的充电器才能使用.这时候分别使用一个手机工厂和一个充电器工厂都不能满足我们的需求,我们必须确认手机跟充电器的对应关系.我们把工厂改造一下,把手机工厂跟充电器工厂联系在一起:

image

分享到:
评论

相关推荐

    设计模式-抽象工厂模式(讲解及其实现代码)

    设计模式-抽象工厂模式(讲解及其实现代码)

    设计模式_简单工厂模式

    简单工厂模式的C++实例源码。适合初学者集合教程理解简单工厂模式。

    设计模式-抽象工厂模式

    能让你最快上手,最容易理解抽象工厂模式,并能在实际中运用

    设计模式-简单工厂模式(讲解及其实现代码)

    设计模式-简单工厂技术的原理解及其相关实现代码。

    JAVA设计模式之抽象工厂模式

    JAVA设计模式之抽象工厂模式,一个不错的列子,逻辑比好清晰,让你更好的理解抽象工厂

    23种设计模式之抽象工厂模式Java示例代码

    本文适合对设计模式和Java编程语言感兴趣的读者学习和参考。 使用人群:软件开发工程师、Java程序员、架构师、设计模式爱好者 用途:帮助读者了解抽象工厂模式的定义、使用场景、主要角色以及相应的类图,并通过Java...

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

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

    JAVA设计模式、工厂模式、原型模式等

    《Java设计模式》的目的是让读者不仅学习怎样在软件设计中使用好设计模式,更重要的是让读者通过学习使用设计模式深刻地理解面向对象的设计思想,以便更好地使用面向对象语言解决设计中的诸多问题。

    设计模式工厂方法的代码演示

    主要设计模式的工厂方法演示,我列举了一个源代码的例子,可以帮助大家更好的理解此事。

    java 简单工厂模式 源代码

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...

    [原创][创建型模式] 简单工厂、工厂方法、抽象工厂三种设计模式的理解

    NULL 博文链接:https://jacky-dai.iteye.com/blog/2296369

    设计模式之工厂模式

    设计模式之工厂模式,按照自己理解写的一个DOME,互相学习

    研磨设计模式(完整带书签).part2.pdf

    中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。...

    设计模式之三种工厂模式

    三种工厂模式的样例代码,让你轻松理解工厂模式

    java中的设计模式,主要的设计模式

    4. 有了设计模式之后,可以让代码更容易被理解,确保了复用性、可靠性、可扩展性 单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式 适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、...

    尚硅谷设计模式源码笔记课件.zip

    本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...

    深入浅出java设计模式(高清中文PDF)

    文件类型为PDF文件,此文档对20多种java设计模式进行了详细讲解,在中文讲解的过程中还附有代码示例给学习者进行参考,使学习者通过实践更容易理解设计模式的原理。 本文档目录: 1.工厂模式 2.单例模式 3.建造...

    设计模式_工厂方法模式

    工厂方法模式的C++实现,有助于初学者结合教程理解工厂方法模式。

    Java设计模式

    简单工厂模式是最简单的设计模式之一,它虽然不属于GoF的23种设计模式,但是应用也较为频繁,同时它是学习其他创建型模式的基础。在简单工厂模式中只需要记住一个简单的参数即可获得所需的对象实例,它提供专门的...

    设计模式 GOF 23

    另外,这也不是一篇高级专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从...

Global site tag (gtag.js) - Google Analytics