设计模式之责任链模式(Chain of Responsibility)

概述

This pattern creates a chain of receiver objects for a request. It avoids coupling the sender of a request to the receiver and gives multiple objects the chance to handle the request.  Receiving objects are linked together. 

责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

责任链模式是指为了避免多个接收对象对一个请求去处理带来的耦合性高的问题,我们解耦这些接受对象,把他们用link串起来。其实就是通过Receiving objects are linked together来简化一个代码块中,handle的行数。

本文类图

本文类图

主要代码

The Super Handler
The Concrete Class

测试

使用类

模式的应用场景

有多个对象可以处理一个请求,哪个对象处理该请求由运行时刻自动确定。

可动态指定一组对象处理请求,或添加新的处理者。

在不明确指定请求处理者的情况下,向多个处理者中的一个提交请求

参考责任链模式,责任链代码,本文代码GitHub地址

你可能感兴趣的:(设计模式之责任链模式(Chain of Responsibility))