Login :
Password :

Design patterns

Chain of responsibility

Static diagram :

Static diagram

Description :

Type :  Be  (Behavioral)
Intent : 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.
Applicability : Use Chain of Responsibility when :
- more than one object may handle a request, and the handler isn't known a priori. The handler should be ascertained automatically.
- you want to issue a request to one of several objects without specifying the receiver explicitly.
- the set of objects that can handle a request should be specified dynamically.

Strong points :

  1. 1. Extensibility
    1. 1.1 Objects chaining factorization
    2. 1.2 Unique access point for the client class
    3. 1.3 Addition or removal of a new element in the chain does not need code modification

Pattern's participants :

Spoiled patterns :

  1. 1. Excessive reuse of a preexisting association

Problems :

  1. 1. Messages relay between nested components
Les têtes de mule