|
这个主题共有 5 回复 / 1 页 [
]
|
|
|
|
|
|
你好,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的代码用状态模式替换,请问怎么写,我想了半天,没有想出来?
|
|
|
|
|
|
Re: 你好,banq,请教一个问题
|
发表: 2006年01月23日 19:34
|
回复
|
|
|
|
|
|
|
|
Re: 你好,banq,请教一个问题
|
发表: 2006年01月27日 16:38
|
回复
|
|
|
你好,BANQ,这有什么场景呀,一共两个类:DbBaseOper是DB基本操作类,UiManager是管理UI用的,其中需要操作DB,而我调用DbBaseOper来作为最基本的DB的操作,我在UiManager中对DbBaseOper是否被实例化作了判断,是用IF ELSE作的的判断,我就是想把这个IF ELSE用状态模式来替换,请问怎么写?谢谢
|
|
|
|
|
|
Re: 你好,banq,请教一个问题
|
发表: 2006年01月28日 10:08
|
回复
|
|
>我就是想把这个IF ELSE用状态模式来替换,请问怎么写? 状态模式是设计模式,用设计模式需要场景,这是基础知识,你没有告诉我为什么在这里用if else,所以,我也无法帮你把它转为状态模式。
给我一个这里使用if else的理由先?
|
|
|
|
|
|
Re: 你好,banq,请教一个问题
|
发表: 2006年02月05日 09:29
|
回复
|
|
|
你好,banq,春节快乐!这里使用IF ELSE的原因是,我怕db变量可能为空,所以使用IF ELSE
|
|
|
|
|
|
Re: 你好,banq,请教一个问题
|
发表: 2006年02月07日 17:47
|
回复
|
|
>我怕db变量可能为空,所以使用IF ELSE 担心变量为空是一个语言语法检验,不属于业务逻辑,所以没有必要使用设计模式,如果你一定要使用,属于过度设计。
我们需要区分语言语法和设计是两个层次的事情,而且对于初学者只有多做一些项目才能把握这两者的区别。
|
|
|
|