定义
免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
类图
角色
抽象处理者(Handler)角色:声明了所有具体处理者的通用接口。 该接口通常仅包含单个方法用于请求处理, 但有时其还会包含一个设置链上下个处理者的方法。
具体处理者(ConcreteHandler)角色:具体处理者接到请求后,可以选择将请求处理掉,或者将请求传给下家。
优缺点
- 单一职责原则。
- 开闭原则。可以在不更改现有代码的情况下在程序中新增处理者。
使用场景
- OkHttp框架中,分析参考OkHttp
- GUI中的事件流,某个view如果要处理就会进行拦截,如果不处理,则传给后续的view。