设计模式——策略模式

策略者模式就是一个功能需求可以有多种策略来进行选择,比如打折,在不同的时间段打折的力度是不同的,按照正常的逻辑我们需要一个个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();
    }
}
相关推荐
雪域迷影2 天前
MacOS中安装并配置Redis
redis·macos·策略模式
有个人神神叨叨2 天前
AITalk:从零到一打造 macOS 系统级语音输入引擎
macos·策略模式
且去填词3 天前
DeepSeek :基于 AST 与 AI 的遗留系统“手术刀”式治理方案
人工智能·自动化·llm·ast·agent·策略模式·deepseek
Byron Loong4 天前
【系统】Mac系统和Linux 指令对比
linux·macos·策略模式
Coder码匠4 天前
策略模式的实际应用:从单一数据源到多数据源架构
java·架构·策略模式
星河耀银海5 天前
C++开发入门——环境搭建与第一个程序
开发语言·c++·策略模式
__万波__5 天前
二十三种设计模式(二十二)--策略模式
java·设计模式·策略模式
rgeshfgreh6 天前
C++模板与ABI:深度解析参数传递
策略模式
FreeBuf_7 天前
新型TCC绕过漏洞:macOS面临自动化攻击风险
macos·自动化·策略模式