设计模式-责任链模式
责任链模式(Chain of Responsibility)客户端对象发起请求,请求由下一个对象往下传递,直到被处某一个对象处理了此请求。客户端对象不需要知道是哪个节点进行了处理。这就可以在不景响客户端对象的情况下动态地重新组织和分配责任。
白话:一条对象链调下去。A->B->C->DA 持有 B 的引用,B 持有 C 的引用,C 持有 D 的引用。开始执行A的逻辑,A能处理就处理了,不能处理就拿着B的引用,调用B去处理。整个逻辑就是这样一直往下去推。
1.角色抽象处理者(Hand):处理请求的接口。所有处理者都实现这个接口。接口可以定义出一个方法以设定和返回对下家的引用。通常由抽象类或接口实现。具体处理者(ConcreteHandler)具体处理者接到请求后可以选择将请求处理掉,或者将请求传给下家。因为具体处理都持有下家的引用。
2.处理顺序可线性,可循环。
1.手动构建责任链这种方式,我觉得挺low的,需要手动构建,不过在刚学习的时候,还是可以帮助理解。需要角色:
Handler
Handler实现类
12345678910111213141516171819 ...