设计模式——策略模式

策略者模式就是一个功能需求可以有多种策略来进行选择,比如打折,在不同的时间段打折的力度是不同的,按照正常的逻辑我们需要一个个if-else去判断,而策略模式利用开闭原则,抽取出一个接口里面有一个抽象的方法,让不同的策略类去实现这个接口方法,来实现多种策略。在外部策略选择时直接传入选择的策略类即可。

java 复制代码
public interface Strategy {

    void show();

}
java 复制代码
/*
  为春节准备的促销活动A
 */
public class StrategyA implements Strategy {

    public void show() {
        System.out.println("春节活动: 买一送一");
    }

}
java 复制代码
/*
  为中秋准备的促销活动B
 */
public class StrategyB implements Strategy {

    public void show() {
        System.out.println("中秋活动: 满200元减50元");
    }
    
}
java 复制代码
/*
  为国庆准备的促销活动C
 */
public class StrategyC implements Strategy {

    public void show() {
        System.out.println("国庆活动:满1000元加一元换购任意200元以下商品");
    }
    
}
java 复制代码
public class Test {

    public static void main(String[] args) {

        Strategy strategyA = new StrategyA();
        strategyA.show();
        Strategy strategyB = new StrategyB();
        strategyB.show();
        Strategy strategyC = new StrategyC();
        strategyC.show();
    }
}
相关推荐
dyxal1 天前
使用tree命令导出文件夹/文件的目录树( Windows 和 macOS)
windows·macos·策略模式
酷炫码神1 天前
第 2 篇:Java 入门实战(JDK8 版)—— 编写第一个 Java 程序,理解基础运行逻辑
java·开发语言·策略模式
程序员TNT2 天前
Shoptnt 促销计算引擎详解:策略模式与责任链的完美融合
linux·windows·策略模式
new_daimond3 天前
设计模式-策略模式深度分析
设计模式·策略模式
织_网3 天前
Electron 核心模块速查表
javascript·electron·策略模式
至此流年莫相忘4 天前
设计模式:策略模式
设计模式·策略模式
特种加菲猫5 天前
并发编程的守护者:信号量与日志策略模式解析
linux·笔记·策略模式
xiaowu0806 天前
策略模式-不同的鸭子的案例
开发语言·c#·策略模式
彭于晏Yan6 天前
Spring Boot中策略模式结合依赖注入的实现方式
spring boot·策略模式
宁静致远20216 天前
【C++设计模式】第二篇:策略模式(Strategy)--从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
c++·设计模式·策略模式