`
1sun1
  • 浏览: 21163 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

单工厂模式,工厂模式和抽象工厂模式超级简单介绍

阅读更多

昨天晚上和同学聊到工厂模式,感觉一下子没有什么整体思路,正好今天不怎么忙,gooogle下,给自己做个小总结。
首先我看了一些别人写的关于工厂模式的介绍,普遍都比较长,对于没耐心的人可能就比较头疼了。好吧,我就站在巨人的肩上在重新整理下好了。
这里主要通过比较简单工厂模式,工厂模式和抽象工厂模式的思路来介绍。
先来看三张图吧(不是自己画的请愿作者原谅,流传太久不知出处- -!),
第一张:

这个就是传说中的简单工厂模式,很简单,原来的需求是只有Creator和Product,每次Creator需要Product的时候都要自己new一个Product。使用简单工厂模式的结果就是增加了ConcreteProduct这个工厂类,好处是Creator不用自己来new Product,需要Product的时候直接问ConcreteProduct拿就是,反过来说就是ConcreteProduct管理了对Product的实例化。
简单吧,如果没看懂,自己Google下简单工厂模式的代码,帮助理解下,如果还看不懂,请您先不要看,先做项目去,到火候的时候自然而然就会了。
第二张:

理解了简单工厂模式之后,再看第二张图就相对简单多了,对比1,2图多的是Product有了父类(接口)子类之分,Factory有了父类(接口)子类之分,至于为什么要多,一个项目中的东西多了之后,自然而然就会让你有这样的想法这样封装,不过看不懂的话,还是那句话,多做做项目(其实我也没做过几个项目,多的是思考而已)。
第三张:

不要埋怨我介绍的太简单,因为它本来就不复杂,看一眼,就是多了一个Product的接口,然后Factory多了对这个多的部分的处理,至于为什么要做,个人觉得是Product多了一个接口不够用了,就出来这个个东西。
不同大小的系统应该使用相应的工厂模式,或是考虑是否使用工厂模式(个人觉得工厂模式还是比较好的)
这个没有贴相关的代码,如果想看工厂模式相关的对于JAVA的实现,个人建议看下这个
http://www.jdon.com/designpatterns/designpattern_factory.htm
不过他没有将简单工厂模式
Sping框架使用工厂模式比较多有兴趣的可以研究下。

 

分享到:
评论
14 楼 jiasky 2010-11-26  
联想到了最近看的一部美国纪录片《食品工厂》,
还好,我们代码中的工厂可没有产出如此低劣的食物,她是安全的!
13 楼 javacn_org 2010-06-02  
26种 基本设计模式 都是非常简单的
12 楼 berlou 2010-05-14  
对JDON那个网站特别无语。
11 楼 berlou 2010-05-14  
简单工厂模式纯粹是玩具, 抽象工厂和工厂方法模式才是正道。
10 楼 1sun1 2010-05-12  
我不适高手,只能写到这种程度,看后如有不适请见谅 - -!

楼上你的名字太个性了,不能引用,Sorry!
9 楼 fucktianya 2010-05-12  
个人认为纯属鸡肋,

明白的不用看,

不明白的看了也没用。呵呵

以上纯属个人观点,不包含人身攻击:)
8 楼 nail2008 2010-05-06  
palmer 写道

看看这里吧

http://www.jdon.com/jivejdon/thread/11177

著名的娘帖
7 楼 palmer 2010-05-06  

看看这里吧

http://www.jdon.com/jivejdon/thread/11177
6 楼 sea7 2010-05-05  
思路非常不清楚,而且理解也有很大偏差。
5 楼 bryande 2010-05-01  
昨天晚上和同学聊到工厂模式,感觉一下子没有什么整体思路,正好今天不怎么忙,gooogle下,给自己做个小总结。
首先我看了一些别人写的关于工厂模式的介绍,普遍都比较长,对于没耐心的人可能就比较头疼了。好吧,我就站在巨人的肩上在重新整理下好了。
这里主要通过比较简单工厂模式,工厂模式和抽象工厂模式的思路来介绍。
先来看三张图吧(不是自己画的请愿作者原谅,流传太久不知出处- -!)

gooogleLZ故意写错的!
4 楼 rainsilence 2010-04-30  
只要你用了mvc,就一定用了工厂模式
3 楼 wumingshi 2010-04-24  
factory 模式的重要性并不在于用一个对象去创建另外一个对象。这简单看上去是多此一举。其精髓在于免除了客户对于一个实现的依赖。随着IOC的流行,简单的factory模式逐渐用到的越来越少了(在一些framework中还可见到,但是在一般的客户代码中应该用依赖注入替换)。
2 楼 1sun1 2010-04-23  
congdepeng 写道
少一个r

Sping框架 spring

- -!,谢谢
1 楼 congdepeng 2010-04-23  
少一个r

Sping框架 spring

相关推荐

    设计模式_抽象工厂模式.zip

    抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责...

    设计模式(十六)之抽象工厂模式.zip

    抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要...

    C# 超级经典抽象工厂,觉得能让你理解

    1.超级经典抽象工厂,觉得能让你理解 2.工厂设计模式 3.和简单工厂融为一体

    python 抽象工厂模式(示例)

    # 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。# 该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。# 在抽象工厂模式中,接口是...

    超级代码工厂(强大实用的代码生成工具)

    工厂模式是一种设计模式,它提供了一种创建对象的最佳方式,通过抽象工厂类创建具体产品实例,使得代码更加灵活且易于维护。工具的这一特性使得开发者无需手动编写大量重复的代码,如数据库访问层、业务逻辑层和服务...

    23种面向对象设计模式

    1. **创建型模式**(Creational Patterns):这类模式关注对象的创建过程,包括单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式...

    饮料商城系统源代码和报告(本次实验要求使用几种特定的设计模式,完成业务功能完整的应用程序)

    抽象工厂模式是围绕一个超级工厂创建其他工厂的模式。这个超级工厂也被称为其他工厂的工厂。在抽象工厂模式中,接口负责创建相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。在本...

    C#设计模式例程大全,面向对象设计模式学习新手必备,超级有用

    创建型模式关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory Method)和抽象工厂模式(Abstract Factory);结构型模式处理对象组合和结构,如适配器模式(Adapter)、装饰器模式(Decorator)和...

    java23种设计模式详解+源码(绝对详解)

    - 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。 - 建造者模式(Builder):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 ...

    23种设计模式超级经典解释!!

    工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪个类。在这个例子中,麦当劳和肯德基代表不同的工厂,它们都生产鸡翅这一产品,但口味不同。消费者(即追MM的人)无需关心具体...

    设计模式-2020-11-25-巫政霖1

    设计模式概述 设计模式是一种面向对象的设计方法,旨在提高软件系统的可维护性、可复用性、可扩展性和灵活性。随着业务变得越来越复杂,让面向对象保持结构良好的...抽象工厂模式很好地发挥了开闭原则、依赖倒置原则。

    设计模式可复用面向对象软件的基础.rar

    创建型模式如工厂模式、抽象工厂模式、单例模式等,主要关注对象的创建过程,使系统的整体结构更易于管理和维护。结构型模式如适配器模式、装饰器模式、代理模式等,关注如何将不同的类或对象组合在一起,形成新的...

    Head-First-Design-Patterns-master设计模式官方源码

    2. 抽象工厂模式(Abstract Factory Pattern):在抽象工厂模式中,一组相关或相互依赖的对象有一共同的接口,且提供一个工厂来创建这一组对象,使得客户端在不关心具体实现的情况下可以创建一系列相关对象。...

    23种设计模式详解

    - **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 - **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。 - **建造者模式**:将一个复杂对象的构建与其...

    Java23种设计模式.

    创建型设计模式如工厂方法模式和抽象工厂模式都是Java开发中非常重要的工具,它们能够帮助开发者更好地组织代码结构,提高程序的可扩展性和灵活性。通过深入理解这些模式的概念及其应用场景,开发人员可以更好地应对...

    Java设计模式之23种设计模式详解

    4. 抽象工厂:创建相关或依赖对象的家族,而无需明确指定具体类。 5. 建造者模式:封装一个复杂对象的构建过程,并可以按步骤构造。 6. 原型模式:通过复制现有的实例来创建新的实例。 7. 适配器模式:将一个类的...

    JAVA实现超级玛丽源代码毕业设计资料

    8. **设计模式**:在大型项目中,设计模式如单例模式(用于全局资源管理,如音乐播放器)、工厂模式(用于对象的创建)和观察者模式(用于事件监听)等会被广泛使用。 9. **调试与测试**:为了确保游戏的稳定性和...

    C#设计模式之原型模式实例:大师兄太调皮,竟然变身二师兄

    如果你也喜欢C#开发或者.NET开发,可以关注我,我会一直更新相关内容,并且会是超级详细的教程,只要你有耐心,基本上不会有什么问题,如果有不懂的,也可以私信我加我联系方式,我将毫无保留的将我的经验和技术分享...

    最新Job_超级面试题

    23种经典设计模式分为创建型、结构型和行为型三大类,例如工厂模式、单例模式、适配器模式、装饰器模式、代理模式、观察者模式等。熟悉并能灵活运用设计模式是衡量开发者经验和技术深度的重要标准。 以上只是Java...

    超级模块源码

    1. **设计模式**:超级模块可能采用了诸如工厂模式、单例模式、观察者模式等设计模式,以实现代码的高效组织和重用。 2. **模块化架构**:模块化设计使得代码可以按功能拆分为独立的单元,每个单元都有明确的职责。...

Global site tag (gtag.js) - Google Analytics