7 回答

TA貢獻1833條經驗 獲得超4個贊

TA貢獻1887條經驗 獲得超5個贊
我會建一個map
map.put("dao1",dao1);
map.put("dao2",dao2);
map.put("dao3",dao3);
然后通過頁面的參數選擇map的key,獲得dao
當然如果你用的是spring, 這個map可以直接配置在spring xml里

TA貢獻1820條經驗 獲得超3個贊
我記著if else和switch case語句都可以用命令模式來重構
interface dao
{
crdu() ;
}
class ConcreteDao implements dao
{
crdu(){...} ;
}
class Service
{
private Dao dao ;
public void set(Dao dao){}
public void service(){dao.service();}
}
class ServiceControl
{
private HashMap<Integer , Dao> map ;
private Service service ;
public ServiceControl()
{
//讀xml表初始化標識與dao的對應
}
public void service(int flag)
{
//根據flag來選擇不同的dao注入到service中
Dao dao = map.get(flag) ;
service.set(dao) ;
service.service() ;
}
}
然后control層直接嗲用servicecontrol就可以了, 這樣control層就和dao解耦了, 兩邊的修改互不影響, 通過xml進行協調
添加回答
舉報