关于工厂模式和策略模式的区别?猿友们指点下迷津

2017-05-26 08:51:31 +08:00
 anguea
1634 次点击
所在节点    问与答
6 条回复
WuMingyu
2017-05-26 09:38:33 +08:00
工厂模式是生成对象的吧,策略模式是针对某个功能有不同的实现策略吧
zhanglp888
2017-05-26 09:58:59 +08:00
工厂模式就是在创建对象时不会对暴露创建逻辑,就好像,你买个汽车,直接交钱买就行了,不用去管,这个车在工厂里是如何组装起来的
zhanglp888
2017-05-26 09:59:28 +08:00
工厂模式就是在创建对象时,不会暴露创建逻辑。
就好像,你去买汽车,直接交钱买就行了,不用去管,这个车在工厂里是如何组装起来的
korewayume
2017-05-26 10:06:31 +08:00
一个是创建型模式,一个是行为型模式
korewayume
2017-05-26 10:15:08 +08:00
工厂模式:
Factory:
if type=="a":
return new A
if type=="b":
return new B

obj = new Factory(type)

结果是 obj is A 或者 obj is B

策略模式:
Strategy:
if type=="a":
this.attribute = new A
return this
if type=="b":
this.attribute = new B
return this

obj = new Strategy(type)

结果是 obj has A() 或者 obj has B()
zhanglp888
2017-05-26 13:19:39 +08:00
策略模式是为了解决的是策略的切换与扩展
如果工厂是黑盒的话,策略模式就是白盒,
买车的时候,你来选配置,然后把车开回家

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363889

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX