责任链模式
2026/8/24小于 1 分钟
责任链模式
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。将这些对象连成一条链,并沿着这条链传递请求,直到有对象处理它为止。
定义与使用场景
定义:一个请求沿着一条"链"传递,直到链上某个处理者处理它为止。
使用场景:一个请求可以被多个处理者处理,或处理者未明确指定时。
Android 中的实现:ViewGroup 事件分发
ViewGroup.dispatchTransformedTouchEvent() 将触摸事件沿 View 树逐层向下分发:
boolean handled;
if (child == null) {
handled = super.dispatchTouchEvent(event);
} else {
handled = child.dispatchTouchEvent(event); // 交给子 View 处理
}事件从父 ViewGroup 传递到子 View,若子 View 不处理则沿链返回,形成一条事件处理链——即责任链模式在 Android 事件体系中的应用。