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

发表文章: 56
注册时间: 2005年07月09日 23:05
给他发消息
你好,banq,请教一个问题 发表: 2006年01月17日 09:08 回复
你好,看了你的GOF设计模式的状态模式后,我欲实现:
我的类有:
public class DbBaseOper { //DB基本操作类
   public ResutlSet query(String sql) {
...........
}
}
public class UiManager {
private DbBaseOper db;
public UiManager() {
db = new DbBaseOper();
}
public List queryUi(String sql) {
.....
if(db != null) { //1
rs = db.query(sql);
} else {
db = new DbBaseOper();
rs = db.query(sql);//2
}
}
}
我想将上面1到2的代码用状态模式替换,请问怎么写,我想了半天,没有想出来?
banq

发表文章: 9095
注册时间: 2002年08月03日 17:08
给他发消息
Re: 你好,banq,请教一个问题 发表: 2006年01月23日 19:34 回复
我反复强调设计模式需要场景前提,你只给我一个if else结果,不给我场景,设计模式不是变魔术。

http://www.jdon.com/artichect/ifelse.htm
lvyg

发表文章: 56
注册时间: 2005年07月09日 23:05
给他发消息
Re: 你好,banq,请教一个问题 发表: 2006年01月27日 16:38 回复
你好,BANQ,这有什么场景呀,一共两个类:DbBaseOper是DB基本操作类,UiManager是管理UI用的,其中需要操作DB,而我调用DbBaseOper来作为最基本的DB的操作,我在UiManager中对DbBaseOper是否被实例化作了判断,是用IF ELSE作的的判断,我就是想把这个IF ELSE用状态模式来替换,请问怎么写?谢谢
banq

发表文章: 9095
注册时间: 2002年08月03日 17:08
给他发消息
Re: 你好,banq,请教一个问题 发表: 2006年01月28日 10:08 回复
>我就是想把这个IF ELSE用状态模式来替换,请问怎么写?
状态模式是设计模式,用设计模式需要场景,这是基础知识,你没有告诉我为什么在这里用if else,所以,我也无法帮你把它转为状态模式。

给我一个这里使用if else的理由先?
lvyg

发表文章: 56
注册时间: 2005年07月09日 23:05
给他发消息
Re: 你好,banq,请教一个问题 发表: 2006年02月05日 09:29 回复
你好,banq,春节快乐!这里使用IF ELSE的原因是,我怕db变量可能为空,所以使用IF ELSE
banq

发表文章: 9095
注册时间: 2002年08月03日 17:08
给他发消息
Re: 你好,banq,请教一个问题 发表: 2006年02月07日 17:47 回复
>我怕db变量可能为空,所以使用IF ELSE
担心变量为空是一个语言语法检验,不属于业务逻辑,所以没有必要使用设计模式,如果你一定要使用,属于过度设计。

我们需要区分语言语法和设计是两个层次的事情,而且对于初学者只有多做一些项目才能把握这两者的区别。

这个主题有 5 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam