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

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

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

 

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

 

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

 

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

 

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

 

 

 

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

 

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

 

测试:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章