Chain of Responsibility Pattern
Source:: Software Design Patterns - Best Practices for Software Developers
Definition
Decoupling the sender of a request from its receiver by chaining the receiving objects together and passing the request along the chain until an object handles it.
Usually the pattern is applied when the request can be handled by multiple objects and it is not known in advance which object will end up handling the request.