Moosphan / Android-Daily-Interview

:pushpin:每工作日更新一道 Android 面试题,小聚成河,大聚成江,共勉之~

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2019-11-07:谈一谈责任链模式的使用场景?

MoJieBlog opened this issue · comments

2019-11-07:谈一谈责任链模式的使用场景?

责任连模式定义: 将多个对象连成一条链,并沿着这条链传递该请求,只到有对象处理该请求为止。使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。

Android中责任链场景:
1) Android 源码中对于事件分发是基于该模式,Android 会将事件包装成一个事件对象从ViewTree的顶部至上而下的分发传递,只到有View处理该事件为止。
2)OkHttp 的拦截器也是基于责任链模式,用户请求和服务器返回数据,会经过内置拦截器链逐级的处理 。

commented

责任连模式,将一个对象或者说是数据源沿着这条链一个一个传下去,并做对应的逻辑处理。有时候数据源是不固定的,比如里面的数据有可能表示不同的场景,那么就有不用的处理者来处理,这个时候就可以使用责任链模式,将请求和处理分开,提高灵活性

commented

责任链模式:将对象沿着链依次执行。

有两个优点:
1,方便插入逻辑;例如OkHttp的拦截器,就充分说明了
2,顺序执行;例如RxJava,可以把它当作一条链,从上往下,通过next调用一个一个的方法。确定了执行顺序