java 策略模式会员_七:策略模式(不同等级会员打折算法)

本文介绍了Java策略模式的原理和实现,通过会员打折的例子展示了如何利用策略模式实现不同等级会员的差异化定价策略。文章首先解释了策略模式的概念,然后通过一个简单的代码示例说明如何使用接口实现动态代码插入。接着,作者提出了一个商店收银系统的场景,其中包含普通顾客、会员、超级会员和金牌会员,他们分别对应原价、八折、七折和半价的收费策略。通过创建不同的策略类并根据客户消费总额动态调整计算价格的策略,实现了会员级别的自动升级和相应的折扣计算。最后,通过引入策略工厂进一步优化了代码结构,降低了客户类的复杂性。
摘要由CSDN通过智能技术生成

定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化;

下面给出策略模式的类图,引自百度百科。

4d76c230848b8dd7185205336bf43a8f.gif

策略模式在LZ第一次接触到的时候,LZ是这么理解的,就是如果我们想往一个方法当中插入随便一段代码的话,就是策略模式。即如下形式。

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class MyClass {

public void myMethod(){

System.out.println("方法里的代码");

//LZ想在这插入一段代码,而且这个代码是可以改变的,想怎么变就怎么变

System.out.println("方法里的代码");

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

在JAVA中,接口可以满足LZ的这一过分要求,我们可以设计一个接口,并当做参数传进去,就能达到这个效果了。我们来看,先定义一个接口。

public interface MyInterface {

//我想插入的代码

void insertCode();

}

将原来的类改成这样,传递一个接口进去。

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class MyClass {

public void myMethod(MyInterface myInterface){

System.out.println("方法里的代码");

//你看我是不是插进来一段代码?而且这段代码是可以随便改变的

myInterface.insertCode();

System.out.println("方法里的代码");

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

我们只要实现了MyInterface这个接口,在insertCode方法中写入我们想要插进去的代码,再将这个类传递给myMethod方法,就可以将我们随手写的代码插到这个方法当中。比如这样。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值