概念
将每一种算法都封装到具有共同接口的独立类中,从而使他们可以相互替换
特点
功能特点:
算法在不影响客户端运行的情况下发生变化,从而改变不同功能(不同算法逻辑)。
设计特点:
1封装变化的部分
2针对接口编码,不针对具体实现编码
角色组成
1 抽象策略角色(A):接口或者抽象类,内含策略方法(算法)
2 具体策略角色:继承或者实现A,并实现策略方法(算法)
3 环境角色:持有一个策略类的引用
案例
实现加减乘除功能
1、定义抽象策略角色
定义抽象策略角色
2、定义具体策略角色(本例子仅仅演示,只是定义加、减两种具体策略)
加法策略:
减法策略:
3、环境角色
4、测试类
如果需要改变策略为减法
environment.setStategy(new SubtractStratety);
result = environment.calulate(20,30);
System.out.println(result);
end
原文:https://www.cnblogs.com/hup666/p/10402864.html