java设计模式:策略模式

        在平常的开发工作中,经常会用到不同的设计模式,合理的使用设计模式,可以提高开发效率,提高代码质量,提高代码的可拓展性和维护性。今天来聊聊策略模式。

        策略模式是一种行为型设计模式,运行时可以根据需求动态地选择算法和操作。策略模式可以避免大量的使用条件语句,使代码简洁,可读性强,提高代码的可维护性。策略模式主要包括:

        环境上下文:执行具体的策略,即使用策略入口类

        策略:定义算法或者抽象方法

        具体策略:实现具体的算法或者抽象方法

        策略模式主要使用场景:

        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();
    }

}

        运行结果:

       java设计模式:策略模式_第1张图片

        以上为策略模式的简单示例。美好的风景一直在路上。加油,才能遇见更好的自己!

你可能感兴趣的:(设计模式,java,设计模式,策略模式)