The Chain of Responsibility Pattern is a behavioral pattern that works with several handlers that has limitations on what requests they could handle. If the handler cannot process a request, it passes on the request to a successor handler. At the end of this chain of handlers, there can either be default or exceptional behavior. This pattern is encountered very frequently in real life. Consider a computer retailer that provides tech support to it’s customers. When a customer calls with a simple problem, it’s usually handled by Level 1 Support. For a serious computer issue such as a broken system, the Level 1 support cannot handle this issue and usually pass this on to a higher level of support or a manager.