前两天使用了策略模式,但是发现还是不够,不够在哪呢?因为我不仅想让SpringBoot执行不同的策略,我还想对这个策略进行限制,让它按照我的想法执行策略,不能在策略接口的实现中胡作非为,那么该怎么办呢??引入模版模式加一个限制,每个具体的策略必须继承自这个抽象的策略就好了。
下面是具体实现:
| 1 | public interface IStrategy { | 
首先定义一个抽象类用来对策略进行限制,并实现IStrategy接口
| 1 | public abstract class AbstractStrategy implements IStrategy{ | 
然后具体的策略就不需要实现IStrategy接口了,而是要继承AbstractStrategy抽象类:
| 1 | 
 | 
| 1 | 
 | 
| 1 | 
 | 
经过这样的限制,具体的策略实现类就只能按照抽象类中实现的handler方法中的定义来运行了。
具体在Service中使用策略就写成这样:
| 1 | 
 |