设计模式-责任链模式
定义
责任链模式(Chain Of Responsibility)是将链中的每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象.当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求为止.
属于行为型模式.
责任链的应用场景
在日常生活中,责任链模式还是比较常见的.比如:我们日常工作上处理一些流程型的事务,往往需要各部门间的协同合作才能完成任务.而每个部门都有各自的职责,因此,很多事情完成一部分,需要转交给下一个部门继续执行,直到所有部门都过一遍之后事情才算真正完成.还有成语过五关斩六将其实也是一种责任链.
责任链模式能够解耦请求和处理,客户只需将请求发送到链上即可,无需关心请求的具体内容和处理细节,请求会自动进行传递直至有节点对象进行处理.
责任链模式适用场景:
1、多个对象可以处理同一请求,但具体由哪个对象处理则在运行时动态决定;
2、在不明确指定接受者的情况下,向多个对象中的一个提交一个请求;
3、可动态指定一组对象处理请求.
首先,我们来看一下责任链模式的通用UML类图:
优点
缺点