美文网首页
设计模式--责任链模式

设计模式--责任链模式

作者: wuuuuu_ | 来源:发表于2020-12-25 10:50 被阅读0次

定义:使多个对象都有机会处理请求,从而降低收发之间的耦合。将这些对象连成一条责任链,沿着链传递该请求,直到被处理。

责任链模式(Responsibility Pattern,行为型设计模式)将一个复杂的流程拆分给多个对象沿链逐一处理,或者给不同层级的对象沿链分级处理。

当任务下发后,会依次传递给接收对象,如果某个对象能处理就直接处理了,如果不能够处理,就传递给下一个接收对象。形成一个接收者对象链,避免链一个请求同时被多个接受者。

优点:

1.降低耦合度。它将请求的发送者和接受者解藕;
2.简化链对象。使得对象不需要直到链的结构;
3.增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序,允许动态的新增或删除责任;
4.增加新的请求处理类很方便。

缺点:

1.不能保证请求一定被接受;
2.会对链中处理者遍历,如果链中处理者较多,会对性能造成一定影响。

Android中责任链的运用

Android事件分发机制

事件传递路线

Activity -> PhoneWindow -> DecorView -> ViewGroup -> ... -> View
dispatchTouchEvent:事件下发。View和ViewGroup都有

onInterceptTouchEvent:拦截下发的事件,并交给自己onTouchEvent处理。ViewGroup有

onTouchEvent:事件上报。View和ViewGroup都有

相关文章

网友评论

      本文标题:设计模式--责任链模式

      本文链接:https://www.haomeiwen.com/subject/lzgmnktx.html