工厂模式的好处在哪里 ?

haowang21 2008-04-29 10:22:37
今天老师给我们讲了 工厂模式 但是我用了工厂模式之后感觉没什么特别的好处 感觉不用工厂模式还会简单很多

谁能给我说下 工厂模式的具体的优势或者好处在哪里?
...全文
17016 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhlinsky 2010-07-28
  • 打赏
  • 举报
回复
减小了代码的耦合度,省去了new 关键字,为每个对象都产生一个共有的实例
calm_diligence 2010-04-15
  • 打赏
  • 举报
回复
就是体现了封装性和面对接口的思想吧
fancybit 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 nanjg 的回复:]
一个老帖了

引用里面好的回复

C# code你要确定一点
工厂模式针对的是多态
也就是说,你的类型如果可能有很多派生,使用工厂模式比较方便
如果你的需求是经常会添加的
比如会添加某个方法,那么使用工厂模式反而很麻烦
因为你要修改一连串的项目文件



详细的见这里:点击即可
[/Quote]
不太明白,是说在子类中添加一个方法吗?如果在子类中添加一个方法和这个子类的创建过程有什么联系吗?
zzzkkk666 2008-08-23
  • 打赏
  • 举报
回复
统一管理对象的创建过程
xxrrss 2008-04-30
  • 打赏
  • 举报
回复
7楼的很通俗,一直看设计模式方面的书,苦于不知道如何进展,或许这就是一个过程!
gabriel80 2008-04-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 SKY138421 的回复:]
工厂就是你要什么去到工厂里拿就好了,工厂负责生产,你除了使用什么都不用管,小程序你看不出优势来,打个比方说如果12亿人人,一人一个电视,那么如果每个人都去工厂里制造是多么麻烦的事,你只要告诉他你要什么类型的,工厂会生产出来给你,这个就是通俗意义上的工厂模式了。
至于说使用这个的好处,可以方便的更改应用程序,方便扩展。比如说你修改了一个类,或者在这个类的基础上生成了一个子类那么你现在要把以前使用父类…
[/Quote]
chenhongxin 2008-04-30
  • 打赏
  • 举报
回复
还管来多少新类都很容易在在工场里实现.因为工厂对象创建对象时,通常还需要结合接口,创建的对象返回的是接口的类型
具体调用者不负责创建对象,当要创建的对象发生改变时,只需要修改工厂,而不需要修改调用者
limon758 2008-04-30
  • 打赏
  • 举报
回复
其实理解了就很简单
现实的工厂的作用是什么
程序里的工厂的作用就是什么
dalmatians 2008-04-30
  • 打赏
  • 举报
回复
有工厂对象创建对象时,通常还需要结合接口,创建的对象返回的是接口的类型
具体调用者不负责创建对象,当要创建的对象发生改变时,只需要修改工厂,而不需要修改调用者
nanjg 2008-04-30
  • 打赏
  • 举报
回复
一个老帖了

引用里面好的回复
你要确定一点
工厂模式针对的是多态
也就是说,你的类型如果可能有很多派生,使用工厂模式比较方便
如果你的需求是经常会添加的
比如会添加某个方法,那么使用工厂模式反而很麻烦
因为你要修改一连串的项目文件


详细的见这里:点击即可
SKY138421 2008-04-29
  • 打赏
  • 举报
回复
工厂就是你要什么去到工厂里拿就好了,工厂负责生产,你除了使用什么都不用管,小程序你看不出优势来,打个比方说如果12亿人人,一人一个电视,那么如果每个人都去工厂里制造是多么麻烦的事,你只要告诉他你要什么类型的,工厂会生产出来给你,这个就是通俗意义上的工厂模式了。
至于说使用这个的好处,可以方便的更改应用程序,方便扩展。比如说你修改了一个类,或者在这个类的基础上生成了一个子类那么你现在要把以前使用父类的地方都给改为子类,如果小程序可能有几十个地方要改,如果大一点可能就几百几千个地方要改了。如果使用工厂模式,你只要改一个地方就可以了。
这样讲比较通俗吧!呵呵!
yeecheng 2008-04-29
  • 打赏
  • 举报
回复
设计模式书中说道,如果对象的初始化的过程很长很复杂,放在构造器中是很危险的,就像很多鸡蛋放到一个篮子里。所以要把对象的创建过程抽象独立出来
sunyujia 2008-04-29
  • 打赏
  • 举报
回复
靠说理解的不真实,百度一下,海量的文章,书上说的也很详细,建议楼主看下p6spy的源码
http://www.p6spy.com/
它的源码很好的诠释了工厂的应用,个人认为是学习工厂的很好的例子.

有关设计模式很多例子都是为了讲解而写的没有说服力
KKK2007 2008-04-29
  • 打赏
  • 举报
回复
统一管理对象的实例化
你的程序简单体现不出来,如果大规模的企业程序里要创建成千上万个对象,每个都去new,程序的业务逻辑
就很混乱,统一由工厂创建,就比清晰。
haowang21 2008-04-29
  • 打赏
  • 举报
回复
可以说的具体点么 ?
gongyali2005 2008-04-29
  • 打赏
  • 举报
回复
进一步的降低耦合

LZ可以年看看SPRING,他就是一个大工厂。
phyeas 2008-04-29
  • 打赏
  • 举报
回复
统一管理对象的创建过程。。
1.什么是设计模式? 2.设计模式是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。 3.说出你所知道的设计模式? 4.简单工厂,外观模式,适配器模式,单例模式,工厂方法模式,抽象工厂模式,生成器模式,原型模式,中介者模式,代理模式,观察者模式,命令模式,迭代器模式,组合模式,模板方法模式,策略模式,状态模式,备忘录模式,享元模式,解释器模式,装饰模式,职责链模式,桥接模式,访问者模式。 5.接口是用来干什么的? 6.通常用接口来定义实现类的外观,也就是实现类的行为定义,用来约束实现类的行为。 7.使用接口的好处 8.由于外部调用和内部实现被接口隔离开了,那么只要接口不变,内部实现的变化就不会影响到外部应用,从而使得系统更灵活,具有更好的扩展性和可维护性 9.什么是OOP?OOP有什么特性?使用OOP用什么好处? 10.oop 是面向对象编程,面向对象编程是一种计算机编程架构,OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组、合而成。好处是易用性、质量高、效率高,易扩展。 11.为什么类要高内聚低耦合? 12.目的是使程序模块
C#设计模式(1) 一、 C# 面向对象程序设计复习 二、 设计模式举例 三、 先有鸡还是先有蛋? 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 五、 .net本质 C#设计模式(2) 一、 "开放-封闭"原则(OCP) 二、 里氏代换原则(LSP) C#设计模式(3) 三、 依赖倒置原则(DIP) 四、 接口隔离原则(ISP) 五、 合成/聚合复用原则(CARP) 六、 迪米特法则(LoD) C#设计模式(4)-Simple Factory Pattern 一、 简单工厂(Simple Factory)模式 二、 Simple Factory模式角色与结构: 三、 程序举例: 四、 Simple Factory模式演化 五、 优点与缺点: C#设计模式(5)-Factory Method Pattern 一、 工厂方法(Factory Method)模式 二、 Factory Method模式角色与结构: 三、 程序举例: 四、 工厂方法模式与简单工厂模式 五、 Factory Method模式演化 六、 Factory Method模式与其它模式的关系 七、 另外一个例子 C#设计模式(6)-Abstract Factory Pattern 一、 抽象工厂(Abstract Factory)模式 二、 Abstract Factory模式的结构: 三、 程序举例: 四、 在什么情形下使用抽象工厂模式: 五、 抽象工厂的起源 六、 Abstract Factory模式在实际系统中的实现 七、 "开放-封闭"原则 C#设计模式(7)-Singleton Pattern 一、 单例(Singleton)模式 二、 Singleton模式的结构: 三、 程序举例: 四、 在什么情形下使用单例模式: 五、 Singleton模式在实际系统中的实现 六、 C#中的Singleton模式 C#设计模式(8)-Builder Pattern 一、 建造者(Builder)模式 二、 Builder模式的结构: 三、 程序举例: 四、 建造者模式的活动序列: 五、 建造者模式的实现: 六、 建造者模式的演化 七、 在什么情况下使用建造者模式 C#设计模式(9)-Prototype Pattern 一、 原型(Prototype)模式 二、 Prototype模式的结构: 三、 程序举例: 四、 带Prototype Manager的原型模式 五、 浅拷贝与深拷贝 六、 Prototype模式的优点与缺点 C#设计模式(10)-Adapter Pattern 一、 适配器(Adapter)模式 二、 类的Adapter模式的结构: 三、 类的Adapter模式示意性实现: 四、 对象的Adapter模式的结构: 五、 对象的Adapter模式示意性实现: 六、 在什么情况下使用适配器模式 七、 一个实际应用Adapter模式的例子 八、 关于Adapter模式的讨论 C#设计模式(11)-Composite Pattern 一、 合成(Composite)模式 二、 合成模式概述 三、 安全式的合成模式的结构 四、 安全式的合成模式实现 五、 透明式的合成模式结构 六、 透明式的合成模式实现 七、 使用合成模式时考虑的几个问题 八、 和尚的故事 九、 一个实际应用Composite模式的例子 C#设计模式(12)-Decorator Pattern 一、 装饰(Decorator)模式 二、 装饰模式的结构 三、 装饰模式示例性代码 四、 装饰模式应当在什么情况下使用 五、 装饰模式实际应用的例子 六、 使用装饰模式的优点和缺点 七、 模式实现的讨论 八、 透明性的要求 九、 装饰模式在.NET中的应用 C#设计模式(13)-Proxy Pattern 一、 代理(Proxy)模式 二、 代理的种类 三、 远程代理的例子 四、 代理模式的结构 五、 代理模式示例性代码 六、 高老庄悟空降八戒 七、 不同类型的代理模式 八、 代理模式实际应用的例子 设计模式(14)-Flyweight Pattern 一、 享元(Flyweight)模式 二、 单纯享元模式的结构 三、 单纯享元模式的示意性源代码 四、 复合享元模式的结构 五、 一个咖啡摊的例子 六、 咖啡屋的例子 七、 享元模式应当在什么情况下使用 八、 享元模式的优点和缺点 设计模式(15)-Facade Pattern 一、 门面(Facade)模式 二、 门面模式的结构 三、 门面模式的实现 四、 在什么情况下使用门面模式 五、 一个例子 六、 使用门面模式的设计 设计模式(16)-Bridge Pattern 一、 桥梁(Bridge)模式 二、 桥梁模式的结构 三、 桥梁模式的示意性源代码 四、 调制解调器问题 五、 另外一个实际应用Bridge模式的例子 六、 在什么情况下应当使用桥梁模式 设计模式(17)-Chain of Responsibility Pattern 一、 职责链(Chain of Responsibility)模式 二、 责任链模式的结构 三、 责任链模式的示意性源代码 四、 纯的与不纯的责任链模式 五、 责任链模式的实际应用案例 六、 责任链模式的实现 设计模式(18)-Command Pattern 一、 命令(Command)模式 二、 命令模式的结构 三、 命令模式的示意性源代码 四、 玉帝传美猴王上天 五、 命令模式的实现 六、 命令模式的实际应用案例 七、 在什么情况下应当使用命令模式 八、 使用命令模式的优点和缺点 设计模式(19)-Observer Pattern 一、 观察者(Observer)模式 二、 观察者模式的结构 三、 观察者模式的示意性源代码 四、 C#中的Delegate与Event 五、 一个实际应用观察者模式的例子 六、 观察者模式的优缺点 设计模式(20)-Visitor Pattern 一、 访问者(Visitor)模式 二、 访问者模式的结构 三、 示意性源代码 四、 一个实际应用Visitor模式的例子 五、 在什么情况下应当使用访问者模式 六、 使用访问者模式的优点和缺点 设计模式(21)-Template Method Pattern 一、 模板方法(Template Method)模式 二、 模版方法模式的结构 三、 模板方法模式的示意性代码 四、 继承作为复用的工具 五、 一个实际应用模板方法的例子 六、 模版方法模式中的方法 七、 重构的原则 设计模式(22)-Strategy Pattern 一、 策略(Strategy)模式 二、 策略模式的结构 三、 示意性源代码 四、 何时使用何种具体策略角色 五、 一个实际应用策略模式的例子 六、 在什么情况下应当使用策略模式 七、 策略模式的优点和缺点 八、 其它

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧