The Chain of Responsibility design pattern solves problems like:
How can coupling the sender of a request to its receiver be avoided?
How can more than one object handle a request?
See Applicability section for all problems Chain of Responsibility can solve. See Solution section for how Chain of Responsibility solves the problems.