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