Chapter 10. The Chain of Responsibility Pattern
When developing an application, most of the time we know which method should satisfy a particular request in advance. However, this is not always the case. For example, we can think of any broadcast computer network, such as the original Ethernet implementation [j.mp/wikishared]. In broadcast computer networks, all requests are sent to all nodes (broadcast domains are excluded for simplicity), but only the nodes that are interested in a sent request process it. All computers that participate in a broadcast network are connected to each other using a common medium such as the cable that connects the three nodes in the following figure:
If a node is not interested or does not know how to handle a request, it can perform the following actions:
- Ignore the request and do nothing
- Forward the request to the next node
The way in which the node reacts to a request is an implementation detail. However, we can use the analogy of a broadcast computer...