设计模式——策略模式

策略者模式就是一个功能需求可以有多种策略来进行选择,比如打折,在不同的时间段打折的力度是不同的,按照正常的逻辑我们需要一个个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();
    }
}
相关推荐
geovindu4 天前
java: Strategy Pattern
java·开发语言·后端·设计模式·策略模式·行为模式
geovindu4 天前
CSharp: Strategy Pattern
开发语言·后端·c#·.net·.netcore·策略模式·行为模式
沪上企服通6 天前
代账数据的可移植性设计:开放接口、账套导出与 exit strategy 工程笔记(上海 5 家样本对照)
笔记·策略模式
码匠许师傅6 天前
【设计模式精讲】26.策略模式(Strategy)
c++·设计模式·策略模式·uml
++==10 天前
基于策略模式的应用层协议支持
策略模式
Java后端的Ai之路10 天前
23、Python - 策略模式
linux·python·策略模式
程序员夏洛11 天前
什么是策略模式?一般用在什么场景?
策略模式
user_admin_god12 天前
数据采集/交换系统设计经验
spring boot·spring·策略模式
Nontee20 天前
Quartz 集群 + 策略模式:逾期预警推送系统设计实录
linux·服务器·策略模式
二炮手亮子21 天前
从 BIO、NIO、AIO 到多路复用与 Netty
策略模式·nio