上述问题没有描述地特别清楚。
我们的问题是:
我们需要读/写一个文件file,这个文件可能在本地,也可能在远程一台计算机上。抽象类CFileProcess是父类,有两个操作readFile()和writeFile(). 两个子类CLocalFileProcess和CRemoteFileProcess继承了父类CFileProcess. 如果使用设计模式,是选择Factory Method还是Strategy模式,为什么?
谢谢!
----------
myzhai
发表文章: 1
注册时间: 2004-02
使用那种模式? 发表时间: 2004年02月28日 16:31:45 回复
有个问题请教。
在我们开发的系统中有一个这样的需求:
系统运行中客户需要写本地文件或者另一台计算机的远程文件,也可以一部分数据写入本地文件,另一部分数据写入远程文件。我们设计了两个类:LocalWrite和RemoteWrite来完成这个任务。用户写本地文件实例化类LocalWrite,写远程文件实例化类RemoteWrite,或者同时实例化这两个类。
现在我们希望利用模式设计的思想来重新设计我们的方案,为了满足上述要求,我们该采用哪个模式呢?是strategy还是Factory Method?这两个模式有什么区别?希望赐教。
bruce
发表文章: 190
注册时间: 2003-05
Re: 使用那种模式? 发表时间: 2004年02月28日 22:42:18 回复
Strategy 是通过聚合传参数的方式, 然后使用多态的方式, 实例化成不同的子类, 通过这样达到一种动态的面向接口的编程. 这在设计模式中用的很多, Factory Method相对简单, 没有使用聚合传参数方式, 只用到了多态.
还有一种更复杂的方式就是: 聚合传参数+多态+重定向(delegation), 象visitor.
__________________
学而不思则罔,思而不学则呆
banq
发表文章: 2231
来 自: 上海
注册时间: 2002-08
Re: 使用那种模式? 发表时间: 2004年02月29日 09:58:19 回复
strategy比较合适
__________________
原创J2EE电子教程 http://www.jdon.com/ejbtur.htm