在平常的开发工作中,经常会用到不同的设计模式,合理的使用设计模式,可以提高开发效率,提高代码质量,提高代码的可拓展性和维护性。今天来聊聊策略模式。
策略模式是一种行为型设计模式,运行时可以根据需求动态地选择算法和操作。策略模式可以避免大量的使用条件语句,使代码简洁,可读性强,提高代码的可维护性。策略模式主要包括:
环境上下文:执行具体的策略,即使用策略入口类
策略:定义算法或者抽象方法
具体策略:实现具体的算法或者抽象方法
策略模式主要使用场景:
1:避免条件语句嵌套:如果有多个if - else条件,会使代码变得看起来很复杂,使用策略模式可以简化,是代码更加简洁。
2:支付方式的选择:电商系统中支付模块,可以根据用户选择的支付方式,动态的选择不同的方法。
3:一个系统要在多个算法中动态选择一个时,将每个算法封装到策略中。
简单代码示例:
环境上下文类:
package test.boot.strategy;public class Context {private Strategy strategy;public Context() {}public void setStrategy(Strategy strategy){this.strategy = strategy;}public void execute() {strategy.strategyExecute();}}
策略接口:
package test.boot.strategy;public interface Strategy {void strategyExecute();}
策略实现类:
package test.boot.strategy;public class StrategyFirst implements Strategy{@Overridepublic void strategyExecute() {System.out.println("StrategyFirst strategyExecute");}
}
package test.boot.strategy;public class StrategySecond implements Strategy {@Overridepublic void strategyExecute() {System.out.println("StrategySecond strategyExecute");}
}
测试类:
package test.boot.strategy;public class StrategyTest {public static void main(String[] args) {Context context = new Context();context.setStrategy(new StrategyFirst());context.execute();context.setStrategy(new StrategySecond());context.execute();}}
运行结果:
以上为策略模式的简单示例。美好的风景一直在路上。加油,才能遇见更好的自己!