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条经验 获得超2个赞
我记着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进行协调
添加回答
举报