工厂模式的好处在哪里 ?

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

谁能给我说下 工厂模式的具体的优势或者好处在哪里?
...全文
17187 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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. 客户端使用 改进版简单工厂:使用枚举类型 简单工厂模式总结 工厂方法模式 基本概念 类图结构 示例:创建不同类型的图形 1. 定义抽象产品接口 2. 实现具体产品类 3. 定义抽象工厂接口 4. 实现具体工厂类 5. 客户端使用 工厂方法模式的变体:参数化工厂方法 工厂方法模式总结 抽象工厂模式 基本概念 类图结构 示例:创建不同风格的UI组件 1. 定义抽象产品接口 2. 实现具体产品类 3. 定义抽象工厂接口 4. 实现具体工厂类 5. 客户端使用 抽象工厂模式的扩展 1. 添加新的抽象产品接口 2. 实现新的具体产品类 3. 修改抽象工厂接口 4. 修改具体工厂类 5. 客户端使用 抽象工厂模式总结 三种工厂模式的比较 简单工厂模式 vs 工厂方法模式 vs 抽象工厂模式 如何选择合适的工厂模式? 三种工厂模式的转化关系 工厂模式的优缺点 工厂模式的优点 工厂模式的缺点 适用场景 通用适用场景 具体模式适用场景 简单工厂模式适用场景 工厂方法模式适用场景 抽象工厂模式适用场景 实际应用场景示例 数据库访问层的设计 跨平台UI组件库 日志记录系统 Java标准库中的工厂模式应用 1. Java集合框架 2. JDBC 3. Calendar类 4. NumberFormat类 5. Java AWT和Swing 6. XML解析器 工厂模式与其他设计模式的关系 1. 工厂模式与单例模式 2. 工厂模式与建造者模式 3. 工厂模式与策略模式 4. 工厂模式与模板方法模式 实际应用案例 1. Spring框架中的BeanFactory 2. JDBC中的DriverManager
桥接模式(Bridge Pattern)详解 1. 什么是桥接模式? 2. 为什么需要桥接模式? 3. 桥接模式的核心概念 4. 桥接模式的结构 5. 桥接模式的基本实现 5.1 基础示例:绘图应用 5.2 实例:跨平台窗口系统 5.3 实例:消息发送系统 6. Java中桥接模式的实际应用 6.1 JDBC API 6.2 Java AWT中的Graphics 6.3 SLF4J日志框架 7. 桥接模式与其他设计模式的比较 7.1 桥接模式 vs 适配器模式 7.2 桥接模式 vs 策略模式 7.3 桥接模式 vs 抽象工厂模式 8. 桥接模式的优缺点 8.1 优点 8.2 缺点 9. 何时使用桥接模式? 10. 常见问题与解决方案 10.1 如何确定哪部分是抽象,哪部分是实现? 10.2 如何处理多层次的抽象和实现? 10.3 如何在运行时动态切换实现? 11. 实际应用场景示例 11.1 多平台媒体播放器 11.2 主题化用户界面 12. 桥接模式在实际项目中的应用 12.1 Spring框架中的事务管理 12.2 Android中的硬件抽象层(HAL) 12.3 文件系统接口 12.4 数据持久化框架 13. 桥接模式的变种和扩展 13.1 带有状态的桥接模式 13.2 带有缓存的桥接模式 13.3 桥接模式与适配器模式结合 14. 总结与最佳实践 14.1 何时使用桥接模式 14.2 实现桥接模式的最佳实践 14.3 常见陷阱
策略模式(Strategy Pattern)详解 1. 什么是策略模式? 2. 为什么需要策略模式? 3. 策略模式的核心概念 3.1 策略(Strategy) 3.2 具体策略(Concrete Strategy) 3.3 上下文(Context) 4. 策略模式的结构 5. 策略模式的基本实现 5.1 基础示例:不同的支付策略 5.2 基础示例:不同的排序策略 6. 策略模式的高级实现 6.1 使用枚举实现策略模式 6.2 使用Lambda表达式实现策略模式 6.3 使用策略工厂 7. 策略模式在Java中的实际应用 7.1 Java Collections Framework中的排序 7.2 线程池中的拒绝策略 7.3 Spring框架中的策略模式 8. 策略模式与其他设计模式的比较 8.1 策略模式 vs 状态模式 8.2 策略模式 vs 命令模式 8.3 策略模式 vs 工厂模式 8.4 策略模式 vs 模板方法模式 9. 策略模式的优缺点 9.1 优点 9.2 缺点 10. 何时使用策略模式? 10.1 实际应用场景 10.2 Java中常见的策略模式应用 11. 常见问题与解决方案 11.1 策略选择问题 11.2 参数传递问题 11.3 策略组合问题 12. 策略模式的最佳实践 12.1 设计建议 12.2 代码示例:优化的策略实现 12.3 性能考虑 13. 策略模式的最佳实践 13.1 设计建议 13.2 代码示例:优化的策略实现 13.3 性能考虑 14. 总结 14.1 核心要点 14.2 常见应用场景 14.3 与Java 8+的结合 14.4 最终建议
模板方法模式(Template Method Pattern)详解 1. 什么是模板方法模式? 2. 为什么需要模板方法模式? 3. 模板方法模式的核心概念 3.1 模板方法(Template Method) 3.2 具体方法(Concrete Method) 3.3 抽象方法(Abstract Method) 3.4 钩子方法(Hook Method) 4. 模板方法模式的结构 5. 模板方法模式的基本实现 5.1 基础示例:饮料制作过程 6. 更多Java示例 6.1 示例:数据处理框架 6.2 示例:游戏开发框架 6.3 示例:文档生成器 7. 模板方法模式在Java中的实际应用 7.1 Java集合框架(Collections Framework) 7.2 Java I/O 7.3 Java Servlet API 7.4 Spring框架 7.5 JUnit测试框架 8. 模板方法模式与其他设计模式的比较 8.1 模板方法模式 vs 策略模式 8.2 模板方法模式 vs 工厂方法模式 8.3 模板方法模式 vs 命令模式 9. 模板方法模式的优缺点 9.1 优点 9.2 缺点 10. 何时使用模板方法模式? 11. 常见问题与解决方案 11.1 如何确定哪些方法应该是抽象的,哪些应该是钩子? 11.2 如何防止子类破坏模板方法的结构? 11.3 如何处理模板方法中的异常? 12. 模板方法模式的变种和扩展 12.1 带回调的模板方法 12.2 多层模板方法 12.3 动态模板方法 13. 在实际项目中应用模板方法模式的最佳实践 13.1 设计建议 13.2 实现示例:分层架构中的应用 13.3 文档化建议 14. 总结

81,117

社区成员

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

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