The chain-of-responsibility pattern is a behavioral pattern that decouples a request from a handling object in a chain of handlers until the handler is recognized as processing the request. This pattern avoids tight coupling between the sender and the receiver, and gives more than one chance to handle the request.
With this pattern, requests are sent to a sequential chain of potential handlers. One of the handlers is expected to take the request and return the response. If the request is not accepted by any of the handlers, it will not be handled by the application. This is depicted by the following diagram:
Each of the handlers handles a single responsibility, which makes the design cleaner, loosely coupled, and easy to extend.
This pattern is useful when we want to perform different operations based on a request as well as keeping...