上一篇介绍了策略模式结合静态代理对策略进行应用,这里介绍结合简单工厂对策略模式的应用。
定义策略枚举:
public enum DaoType {
/**
* hibernate
*/
HIBERNATE,
/**
* ibatits
*/
IBATITS
}
定义策略工厂:
/**
* @author alex
*
*/
public class StratagemFactory {
private AbstractDao dao;
public StratagemFactory(DaoType type){
if(type != null){
switch(type){
case HIBERNATE :
dao = new HibernateDao();
break;
case IBATITS :
dao = new IbatitsDao();
break;
}
}
}
public Object getObject(){
return dao.getById();
}
}
client中应用策略:
public static void testStratagemFactory(){
// StratagemFactory stratagem = new StratagemFactory(DaoType.HIBERNATE);
StratagemFactory stratagem = new StratagemFactory(DaoType.IBATITS);
System.out.println(stratagem.getObject());
}
本文介绍如何将策略模式与简单工厂模式相结合应用于代码设计中。通过定义策略枚举及策略工厂,可以在运行时根据不同的需求选择合适的策略实现。具体案例展示了通过策略工厂创建不同类型的DAO对象。

被折叠的 条评论
为什么被折叠?



