首页 > 其他 > 详细

策略模式

时间:2014-10-11 19:05:18      阅读:250      评论:0      收藏:0      [点我收藏+]
/**
 *  抽象的的策略角色
 *	
 *	@date  2014-10-4上午10:04:33
 */
public interface Stratrgy {
   public void dosomething();
}
public class CreateStrategy1 implements Stratrgy {

	@Override
	public void dosomething() {
		System.out.println("执行具体的算法1。。。。。。。。。。。。");
	}

}
public class CreateStrategy2 implements Stratrgy {

	@Override
	public void dosomething() {
		System.out.println("执行具体的算法2。。。。。。。。。。。。");
	}

}

public class Context {
    private Stratrgy sty= null;
	public Context(Stratrgy _sty) {
		this.sty = _sty;
	}
    public void doAnything(){
    	this.sty.dosomething();
    }
}

/**
	 * 
	 * 策略模式的优点:
	 * 1.算法可以自由的切换
	 * 2.避免使用多重条件判断
	 * 3.扩展性良好
	 * 策略模式的缺点:
	 * 1.策略类数量增多
	 * 2.所有的策略类都需要对外暴露(可以用工厂方法模式、代理模式或享元模式来修正缺陷)
	 */
	public static void main(String[] args) {
		Stratrgy sty1 = new CreateStrategy1();
		
		Stratrgy sty2 = new CreateStrategy2();
		
		Context context = new Context(sty1);
		
		context.doAnything();
		
	}


策略模式

原文:http://my.oschina.net/u/586094/blog/326886

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!