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

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

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

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第1张图片

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

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第2张图片

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

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第3张图片

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

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第4张图片

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

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第5张图片

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第6张图片

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第7张图片

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

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第8张图片

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

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第9张图片

测试:

 

精妙绝伦的设计模式:策略模式+模板模式+工厂模式_第10张图片

你可能感兴趣的:(Java)