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.
receiver1.operation1())
directly within the class
(Sender)
that sends the request.