精妙绝伦的设计模式:策略模式+模板模式+工厂模式

还是以经典的会员价格策略为依托场景;

一、首先加入maven依赖,此依赖用于扫描并获取特定含有特定注解的类

 

二、定义个一个自定义注解,用来定义并判断价格区间

 

三、写一个策略接口类,用于定义获取折后价格的抽象方法

 

四、写一个抽象类,用来实现策略接口中的方法,并且将公共的前置判断逻辑放在此抽象类中(此为模板设计模式),并定义好抽象方法calcPrice()让各自的策略类中去实现

 

五、各自的策略类:Ordinary(普通用户),Member(会员 6折),SuperMember(超级会员,4折),都需要继承公共的模板类AbstractPrice

 

 

 

六、写一个工厂类,所有的策略类将注入到这个类中

 

七、写一个上下文类,用于获取具体的策略类实例,并执行对应策略类实例的计算方法:

 

测试:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值