场景痛点:
假设你在开发一个HTTP请求处理框架,需要实现以下需求:
若仅用责任链模式:
public abstract class Handler {
protected Handler next;
public void setNext(Handler next) {
this.next = next;
}
public abstract void handle(Request request);
}
问题暴露:
模式组合的价值:
定义:动态地给对象添加额外职责,相比继承更加灵活。
核心价值:透明扩展对象功能,遵循开闭原则。
定义:将请求的发送者和接收者解耦,使多个对象都有机会处理请求。
核心价值:灵活控制处理流程。