策略模式

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

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

代码如下

//接口类
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

posted @ 2018-05-12 20:47  酒皇  阅读(124)  评论(0编辑  收藏  举报