责任链模式
模式对比
- 桥接模式:都有占位;但是桥接更注重唯一位置
- 策略模式:都有执行策略;但是策略模式一般都是单选,而且策略固定
- 状态模式:可能有多重策略流转;不过状态动态,且顺序执行
- 组合模式:都有递归遍历的形态;但是组合更多在于数据结构
- 装饰器模式:都有封装扩展;但是责任链上下文一致
和众多的设计模式相比,比起结构管理,责任链模式更多的在于功能管理。
泛化是设计模式的普遍特征,因此,复杂的功能经常都是由一个起点引发的关联执行。
这是一种深度的发展、分支的发散。
设计模式中也不乏横向的变化,但是都有一个特点:横向深度不够,也就是打击面广,但是范围杀伤力不够。
比如策略模式只能命中一个策略,桥接模式只有唯一内核…
而责任链模式
本身就是在单层逻辑具备很好的分块处理功能。
使用得当,或许它在业务中就是对你代码外观影响最大的涉及模式。
代码示例
interface ProcessNode {
boolean enable();
void process(Request request, Response response, Context context);
int order();
}
abstract class BusinessProcessManager implements ProcessNode{
static final List<ProcessNode> processNodes = new LinkedList<>();
@PostCon