我记着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 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进行协调