责任链模式是一种行为设计模式,它的应用场景是多个对象同时处理同一个请求,但是由哪一个对象处理那么在运行的时候决定。
一. 定义
1. 使多个对象有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。
2. 将这些对象连成一条链,并沿着这条链传递该请求,知道有对象处理他为止。
二. 角色划分
1. 简化版本
角色一: Handler(抽象处理对象),声明一个处理方法,并且在其中保持一个对下一个处理节点对象的引用
角色二: ConcreteHandler(具体的处理角色),对对象请求进行处理,如果不能处理,将这个请求转发给下一个节点的对象进行请求。
2. 复杂版本
开发中:请求是一个对象(是一个类)
角色一:NahuelKang_Leader(抽象处理对象)
角色二:NahuelKang_Group(具体的处理角色1)
角色三:NahuelKang_Manager(具体的处理角色2)
角色四:NahuelKang_Boss(具体的处理角色3)
角色五:Request(抽象请求对象)
角色六:NahuelKang_ExpenseAccount(具体的请求角色1)
角色七:客户端
总结:个人觉得责任链模式有点像数据结构里面的单向链表,对处理事件进行单向传递处理。