java设计模式之策略模式
策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
理解:将同一类算法抽象为一个接口,接口有不同的实现,即为策略。在需要使用该算法的类中,定义该接口为成员。在构造中用不同策略(接口实现)实例化该成员,即可使用该策略。
这个模式涉及到三个角色:
● 环境(Context)角色:持有一个Strategy的引用,即需要使用算法的类,有一个抽象策略的成员。
● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口,即算法抽象的接口。
● 具体策略(ConcreteStrategy)角色:包装了相关的算法或行为,即为抽象接口的实现。
摘取容易理解的实例:
[https://baijiahao.baidu.com/s?id=1601547440739500969&wfr=spider&for=pc]
1、定义抽象策略角色
定义抽象策略角色
2、定义具体策略角色(本例子仅仅演示,只是定义加、减两种具体策略)
加法策略:
减法策略:
3、环境角色
4、测试类
SpringBoot实现策略模式