策略模式

Posted 酒皇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了策略模式相关的知识,希望对你有一定的参考价值。

策略模式是一种简单的模式,利用继承(实现)关系。

对同一个功能产生不同的子类,对某个方法进行不同的策略

代码如下

//接口类
public interface Strategy {
    public int reduce(int pay);
}

//实现1,满五百减两百
public class StrategyA implements Strategy {
    @Override
    public int reduce(int pay) {
        if(pay>500){
            pay-=200;
        }
        return pay;
    }
}

//实现2 满一千打八折
public class StrategyB implements Strategy{
    @Override
    public int reduce(int pay) {
        if(pay>1000){
            pay*=0.8;
        }
        return pay;
    }
}

//实现3 原价
public class StrategyC implements Strategy{
    @Override
    public int reduce(int pay) {
        return pay;
    }
}


//对某次付款进行促销
public class Context {
     public static void main(String[] args) {
        int pay=1850;
        Strategy s1=new StrategyA();
        Strategy s2=new StrategyB();
        Strategy s3=new StrategyC();
        pay=s2.reduce(pay);
        pay=s1.reduce(pay);
        pay=s3.reduce(pay);
        System.out.println(pay);
        
    }
}

这样我们通过替换显示层的new对象就可以控制某个功能的不同实现了。。。。。

一般Spring

以上是关于策略模式的主要内容,如果未能解决你的问题,请参考以下文章

Redis实现分布式锁(设计模式应用实战)

用于从 cloudkit 检索单列的代码模式/片段

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式