简介
策略模式(Strategy Pattern)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
其主要目的是通过定义相似的算法,替换if else 语句写法,并且可以随时相互替换。
策略模式主要由这三个角色组成,环境角色(Context)、抽象策略角色(Strategy)和具体策略角色(ConcreteStrategy)。
示例图如下:
- class CalculatorContext {
- private CalculateStrategy strategy;
-
- public CalculatorContext(CalculateStrategy strategy) {
- this.strategy = strategy;
- }
-
- public int executeStrategy(int num1, int num2) {
- return strategy.doOperation(num1, num2);
- }
- }