你好,banq,请教一个问题

06-01-17 lvyg
    

你好,看了你的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
2006-01-23 19:34

我反复强调设计模式需要场景前提,你只给我一个if else结果,不给我场景,设计模式不是变魔术。

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

lvyg
2006-01-27 16:38

你好,BANQ,这有什么场景呀,一共两个类:DbBaseOper是DB基本操作类,UiManager是管理UI用的,其中需要操作DB,而我调用DbBaseOper来作为最基本的DB的操作,我在UiManager中对DbBaseOper是否被实例化作了判断,是用IF ELSE作的的判断,我就是想把这个IF ELSE用状态模式来替换,请问怎么写?谢谢

banq
2006-01-28 10:08

>我就是想把这个IF ELSE用状态模式来替换,请问怎么写?
状态模式是设计模式,用设计模式需要场景,这是基础知识,你没有告诉我为什么在这里用if else,所以,我也无法帮你把它转为状态模式。

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

lvyg
2006-02-05 09:29

你好,banq,春节快乐!这里使用IF ELSE的原因是,我怕db变量可能为空,所以使用IF ELSE

2Go 1 2 下一页