Topic: Strategy(策略)与工厂模式有什么区别?

  Print this page

1.Strategy(策略)与工厂模式有什么区别? Copy to clipboard
Posted by: james_patriot
Posted on: 2006-07-12 09:02

除了一个创建模式一个是行为模式的意义上的区别外.
其它都很相似.Strategy(策略)完全可用工厂模式来实现.
不知理解是否正确?

2.Re:Strategy(策略)与工厂模式有什么区别? [Re: james_patriot] Copy to clipboard
Posted by: floater
Posted on: 2006-07-12 22:39

not quite right.

On the one hand, a lot of patterns have similar code. On the other hand, their intentions are entire different, the invariants and variants are hidden under the code.

In the strategy patten, we want to switch strategies, depending on different values of some fieldMoon. The place to switch is the tricky part, i.e., where do you want to put the switching code, e.g., in the caller's constructor, or in an if-else block, or on a method signature.

3.Re:Strategy(策略)与工厂模式有什么区别? [Re: james_patriot] Copy to clipboard
Posted by: gaoxt1983
Posted on: 2006-07-18 17:10

没必要深究这个,设计的时候怎么合适就怎么用,也不是说必须用,只是在适当的时候用,工作中慢慢体会吧

4.Re:Strategy(策略)与工厂模式有什么区别? [Re: james_patriot] Copy to clipboard
Posted by: jameszhang
Posted on: 2006-07-18 20:23

工厂模式 种类 可多了,共同点 是 得返回 产品,呵呵,策略 可不一定,是void 也可以,只是根据条件 不同,处理策略不同, 如果说 策略 与 状态 有点象,我同意,呵呵

5.Re:Strategy(策略)与工厂模式有什么区别? [Re: james_patriot] Copy to clipboard
Posted by: zj1999
Posted on: 2008-09-22 21:57

楼上说的对,
工厂模式是创建模式,返回的是一个对象给你用.
而策略模式是行为模式.它制造好对象之后,还给你这个对象的方法可以进行相应的计算和处理.


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2020 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号
客服电话 0592-8750026    客服信箱 714923@qq.com    客服QQ 714923