应用设计模式之策略模式(Factory)

上一篇介绍了策略模式结合静态代理对策略进行应用,这里介绍结合简单工厂对策略模式的应用。

定义策略枚举:

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());
	}
 

猜你喜欢

转载自alexgao.iteye.com/blog/1583009
今日推荐