在平常的开发工作中,经常会用到不同的设计模式,合理的使用设计模式,可以提高开发效率,提高代码质量,提高代码的可拓展性和维护性。今天来聊聊策略模式。
策略模式是一种行为型设计模式,运行时可以根据需求动态地选择算法和操作。策略模式可以避免大量的使用条件语句,使代码简洁,可读性强,提高代码的可维护性。策略模式主要包括:
环境上下文:执行具体的策略,即使用策略入口类
策略:定义算法或者抽象方法
具体策略:实现具体的算法或者抽象方法
策略模式主要使用场景:
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{
@Override
public void strategyExecute() {
System.out.println("StrategyFirst strategyExecute");
}
}
package test.boot.strategy;
public class StrategySecond implements Strategy {
@Override
public 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();
}
}
运行结果:
以上为策略模式的简单示例。美好的风景一直在路上。加油,才能遇见更好的自己!