Static Class Structure
Sender
Handler
interface
to handle a request
(handler.handleRequest())
handler)
to a Handler object
on the chain.
Handler
successor)
to the next
Handler object on the chain.
Receiver1,Receiver2,Receiver3,…
Handler interface
Dynamic Object Collaboration
Sender object
sends a request to a
Handler object on the chain.
The request gets forwarded along the chain
until a handler (receiver3)
handles it.
Sender that
calls
handleRequest() on the
receiver1 object (of type Handler).
receiver1
forwards the request
by calling handleRequest() on
the receiver2 object.
receiver2
forwards the request
by calling handleRequest() on
the receiver3 object.
receiver3
handles the request
and returns to receiver2
(which returns to
receiver1, which in turn
returns to the Sender).