Chain of Responsibility: Synopsis
The Chain of Responsibility pattern allows an object to send a command without knowing what object will receive it. It does that by passing the command to a chain of objects that is typically part of a larger structure. Each object in the chain may handle the command, pass it on to the next object in the chain or do both.