GoF Chain of Responsibility Pattern

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.

Componentized Chain of Responsibility Pattern

PerfectJPattern's componentized version of the Chain of Responsibility Pattern provides the following advantages:

Parameterizes the Handler interface with generic request parameter, making the pattern
type-safe and flexible to user-defined context-specific request definitions.

Flexible decision-making with the Strategy Pattern e.g. decision on whether to forward requests to
successor Handler instances. IHandler instances may be configured with a IChainStrategy
that parameterize the Chain-continuation behavior. It was provided two concrete implementations
AllHandleStrategy and OnlyOneHandleStrategy where the later is the use-case
covered in the original GoF implementation and the default Strategy.