您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页设计模式读后感之策略模式

设计模式读后感之策略模式

来源:欧得旅游网

策略模式

定义是:定义算法家族,分别封装起来,让他们之间可以相互替代,此模式让算法的变化,可以不会影响使用算法的客户。

uml图如下:


package category;

public abstract class Stragery {

	public abstract void AlgorithmInterface();
}

 具体实现的三个策略

public class ConcreteStrategyA extends Stragery {

	@Override
	public void AlgorithmInterface() {
		// TODO Auto-generated method stub
		
		System.out.println("Methond A implements");

	}

}

public class ConcreteStrategyB extends Stragery {

	@Override
	public void AlgorithmInterface() {
		// TODO Auto-generated method stub
		
		System.out.println("Methond B implements");

	}

}

public class ConcreteStrategyC extends Stragery {

	@Override
	public void AlgorithmInterface() {
		// TODO Auto-generated method stub
		
		System.out.println("Methond C implements");

	}

}

 
 将策略封装到一个Context类中,然后就能在这个类中根据传入的策略不同而实现不同的策略

 

public class Context {

	private Stragery stragery;

	public  Context(Stragery stragery) {
		this.stragery = stragery;
	}

	public void ContextInterface() {
		stragery.AlgorithmInterface();
	}

}

 main方法检验

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Context context;

		context = new Context(new ConcreteStrategyA());
		context.ContextInterface();
		context = new Context(new ConcreteStrategyB());
		context.ContextInterface();
		context = new Context(new ConcreteStrategyC());
		context.ContextInterface();
	}

}

 在实践中,如果遇到了不同时间,用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务