no edit summary
* The '''Chain of Responsibility''' pattern uses a chain of objects to handle a request, which is typically an event. Objects in the chain forward the request along the chain until one of the objects handles the event. Processing stops after an event is handled.
== Purpose ==
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.
The role of every class:
*'''Handler''' - defines an interface for handling requests
Here are a few situations when using the Chain of Responsibility is more effective:
* More than one object can handle a request
* The group of objects that may handle the request must be specified in a dynamic way