社区
Java
帖子详情
谁能够讲讲简单工厂模式和策略模式有什么本质区别?
wangmengfei
2008-03-26 05:12:30
谁能够讲讲简单工厂模式和策略模式有什么本质区别?
谢谢
...全文
1901
19
打赏
收藏
谁能够讲讲简单工厂模式和策略模式有什么本质区别?
谁能够讲讲简单工厂模式和策略模式有什么本质区别? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hamxyy
2011-10-18
打赏
举报
回复
设计模式是实践设计原则的
所有的设计原则都是围绕着一个观点那就是封装变化
如果把变化封装的足够好,我们就可以再变化到来的时候做最小的应对,也就是最小程度的改代码
模式就是一种经验,一种成熟的做法
抽象工厂模式用于创建对象时的变化
策略模式用于算法实现时的变化
他们本质上都是变化
LZ这个问题可谓学会了方法,但是不了解本质
封装变化最好的方法,就是依赖抽象,利用多态,面向接口编程
希望有帮助
ccchhhbbb
2011-05-15
打赏
举报
回复
回复16楼:
其实你已看到了两者的些许不同,简单工厂重的是对象,它不属于一种模式,和他相似的工厂模式属于创建型模式;而策略模式重的的行为,他也是扁平结构。举个不恰当的例子,你想一想抽象类和接口的侧重点一样吗?
zqnxt
2011-04-28
打赏
举报
回复
[Quote=引用 16 楼 jameschen19 的回复:]
引用 4 楼 kisskiller 的回复:
策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
简单工厂:将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。
简单工厂严格意义上不是一种设计模式,只能是一种良好的编程习惯。
我也不是很明白,不能将简单工厂所创建的对象理解成为策略模式中的各种算法吗,前者和后者都是继承于某……
[/Quote]
我与楼上有同感,觉得简单工厂中的对象与策略模式中的算法效果相同,策略模式只是在Context(简单模式工厂中的Factory)中添加了执行方法而已。不懂到底有什么区别。
jameschen19
2011-04-25
打赏
举报
回复
[Quote=引用 4 楼 kisskiller 的回复:]
策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
简单工厂:将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。
简单工厂严格意义上不是一种设计模式,只能是一种良好的编程习惯。
[/Quote]
我也不是很明白,不能将简单工厂所创建的对象理解成为策略模式中的各种算法吗,前者和后者都是继承于某一基类,被工厂或Context所创建,有什么区别?求解答
lyb1985031
2010-12-07
打赏
举报
回复
个人觉得,思想基本类似,作用不同而已~
tiwson
2009-02-02
打赏
举报
回复
学习了!感谢回答的各位大哥!
极地_雪狼
2009-01-21
打赏
举报
回复
简单工厂模式是创建的对象,且由该对象调用其内部的指定算法,主要是针对的对象之间的行为差异,单独封装
策略模式是针对的对象内部行为的算法,可以看作是一个集合,是允许多个策略实体进行叠加的。但工厂模式就不成。
javalead
2008-07-04
打赏
举报
回复
不太明白策率模式是什么,学习了。
Chins
2008-06-26
打赏
举报
回复
学习了
ruanguiquan
2008-04-23
打赏
举报
回复
学习的
wangwenjun69
2008-04-21
打赏
举报
回复
[Quote=引用 4 楼 KissKiller 的回复:]
策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
简单工厂:将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。
简单工厂严格意义上不是一种设计模式,只能是一种良好的编程习惯。
[/Quote]
严重支持这位大哥说的。很好,精辟
SINCE1978
2008-04-14
打赏
举报
回复
简单工厂侧重明确类的职责
策略侧重演示抽象类的使用
lllove
2008-04-11
打赏
举报
回复
这个两个模式区别大了哦。
dracularking
2008-04-10
打赏
举报
回复
实际整个Strategy的核心部分就是抽象类的使用,使用Strategy模式可以在用户需要变化时,修改量很少,而且快速。
Strategy和Factory有一定的类似,Strategy相对简单轻易理解:
Strategy适合下列场合:
1.以不同的格式保存文件;
2.以不同的算法压缩文件;
3.以不同的算法截获图象;
4.以不同的格式输出同样数据的图形,比如曲线 或框图bar等。
HollyKiller
2008-04-10
打赏
举报
回复
策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
简单工厂:将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。
简单工厂严格意义上不是一种设计模式,只能是一种良好的编程习惯。
cancer2000
2008-04-09
打赏
举报
回复
前一个是创建模式,后一个是行为模式。
wanglovec
2008-03-27
打赏
举报
回复
区别很大哦,前一个解决的问题是 对象的创建
后一个封装一系列的算法 并使他们可以替换。
林g
2008-03-27
打赏
举报
回复
简单工厂和策略字面上有什么区别啊!
也就是简单的跟仔细的区别!
研磨设计模式(完整带书签).part2.pdf
中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。...
研磨设计模式(完整带书签).part1.pdf
中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。...
研磨设计模式-part2
中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。...
研磨设计模式-part4
中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。...
研磨设计模式-part3
中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。...
Java
50,523
社区成员
85,601
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章