JiveJdon Community Forums
在线353人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 1 回复 / 1
 发表新帖子   回复该主题贴
daemonx

悄悄话
发表文章: 1
注册时间: 2004年05月28日 17:28
请教benq大哥strategy模式在实际中的一个应用 2004年05月31日 09:45 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
mvc结构中,向数据库中导入文件时,需要针对table来导入,先考虑简单的情况,即一个文件只对应一个表。
现有四个文件,分别要导入四个表格中(他们的字段不同),这时就表示要有四种不同的方法来分别处理四个不同的表格。
按照strategy模式的逻辑,可以将四种不同的处理表格的方法分别包装到四个类中,暂且分别叫他们StuModel, TchModel, EntModel, FamiModel,然后为这四个类抽象出一个接口,名为Model,然后在ImportExcel中使用类似如下的代码使用Model类:
public class ImportExcel{
private Model=null;
ImportExcel(Model aModel){
Model=aModel;
}
public doImport(){
……
}
……
}
我有几个问题,
第一个问题是,我不确定我对strategy模式的理解准不准确,使用的是不是正确。
第二个问题是,在这种情况中使用strategy模式有没有问题。
第三个问题是,strategy模式是用来方便的更换算法的,通常来说是根据用户的不同需要,跟用户进行交互,由用户来选择一种算法,比如说gui上使用一个下拉列表,上边列出了若干算法,这个时候确定按钮中应该如何处理用户在下拉列表中的选择,创建不同类型的Model?(下拉列表中通常传回的是String吧?不知有没有方法直接传回相应的Model类,JComboBox在列表中显示时是调用Objct.toString()来显示add()到其中的Object吗?)我猜是使用Class.forName(),不知对不对:)
第四个问题是,如果在没有用户交互的情况下使用strategy模式有什么优势。

问题多了点,而且很初级,请不吝赐教,谢谢了先。
banq

悄悄话
发表文章: 9484
注册时间: 2002年08月03日 17:08
Re: 请教benq大哥strategy模式在实际中的一个应用 2004年06月01日 21:13 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>第一个问题是,我不确定我对strategy模式的理解准不准确,使用的是不是正确。

我感觉使用Factory模式更好一些,strategy模式完全是算法策略,而你这里好像除了算法,还有不同的算法结果,产品


>第二个问题是,在这种情况中使用strategy模式有没有问题。

一定使用,初期不会有问题,问题是在扩展或Refactorying才发现

>第四个问题是,如果在没有用户交互的情况下使用strategy模式有什么优势。

strategy模式是独立于客户端变化的,而你是依据客户变化,使用strategy模式 不妥当,strategy模式是一个小模式,行为模式,非常简单,而你这里涉及到元素很多,需要考虑结构模式或创建型模式去做。


我认为应该是Command + Factory结合。
在用户界面互动中,惯例已经是Event驱动Command了,可以参考我的书籍相关事件模式描述。




这个主题有 1 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam