Thursday, January 7, 2021

Android Chain of Responsibility Pattern

 


5. 应用场景

  • 多个对象处理同一请求时,但是具体由哪个对象去处理需要运行时做判断。
  • 具体处理者不明确的情况下,向这组对象提交了一个请求。

6. 优点

  • 代码的解耦,请求者与处理者的隔离分开。
  • 易于扩展,新增处理者往链上加结点即可。

7. 缺点

  • 责任链过长的话,或者链上的结点判断处理时间太长的话会影响性能,特别是递归循环的时候。
  • 请求有可能遍历完链都得不到处理。

责任链模式在 Android 中的体现

还记得 Android 总的事件分发机制吗,主要有三个方法,

dispatchTouchEvent

onInterceptTouchEvent

onTouchEvent 


dispatchTouchEvent ,这个方法主要是用来分发事件的

onInterceptTouchEvent,这个方法主要是用来拦截事件的(需要注意的是ViewGroup才有这个方法,View没有onInterceptTouchEvent这个方法

onTouchEvent这个方法主要是用来处理事件的

requestDisallowInterceptTouchEvent(true),这个方法能够影响父View是否拦截事件,true表示 不拦截事件,false表示拦截事件

Reference:

https://juejin.cn/post/6844903929604472846

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能