The chain of responsibility design pattern is a behavioral pattern. It holds a chain of receiving objects and pass the request along the chain until an object handles it. For example, an ATM uses the Chain of Responsibility design pattern in money giving process. A Chain of Responsibility Pattern says that just "avoid coupling the sender of a request to its receiver by giving multiple objects a chance to handle the request". This real-world code demonstrates the Chain of Responsibility pattern in which several linked managers and executives can respond to a purchase request or hand it off to a superior. There are many design patterns most developers are familiar with to name a few are – MVC , Factory, Singleton, Observer , Decorator etc. As all GOF design patterns, its name suits it perfectly since the pattern defines for a request to handle, a chain of objets which, turn-to-turn have the ability to stop the chain processing and to response to the request. Today I will talk about Chain of Responsibility (CoR) pattern with a use case. Chain of Responsibility is a behavioral design pattern that lets you pass requests along a chain of handlers. First up in the Behavioral pattern list is the Chain of Responsibility design pattern, which makes it easy to chain objects together in an ordered set. The classic Chain of Responsibility (CoR) pattern requires the individual chain node classes to decide whether the next node should be called to fulfill the chain's responsibility. Each position has can have its own set of rules which orders they can approve. Understanding the Pattern Chain of Responsibility is one of the powerful behavioral design pattern in GOF patterns that de-couples the sender of a request to its receiver by giving more than one object a chance to handle the request. You should use the Chain of Responsibility Pattern when: More than one object can handle a request, and the handler is not known. Chain of responsibility pattern is used to achieve loose coupling in software design where a request from client is passed to a chain of objects to process them. It’s a security plugin that prevents someone from using a password that has appeared in a data breach. You want to issue a request to one of several objects without specifying the receiver completely. Using the chain-of-responsibility pattern to hash WordPress passwords “ Passwords Evolved ” is an open source WordPress plugin that I’ve built and maintained over the years. ; The set of objects that can handle a request should be specified dynamically. The chain of responsibility design pattern falls under the behavioral category and can be used to reduce coupling between the sender of a request and the receiver object that handles the request. In chain of responsibility, sender sends a request to a chain of objects. Adding a chain What we need is a way to allow the representation of a single action value from multiple strategies where each one implements a unique action depending on the values of the response. The request can be handled by any object in the chain. Then the object in the chain will decide themselves who will be processing the request and whether the request is required to be sent to the next object in the chain … A specific, logical requirement is passed into the chain and is checked against each object in the set, in order, until a suitable match is found that meets the needs of the particular requirement.