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". Each position has can have its own set of rules which orders they can approve. 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. 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. 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 chain of responsibility design pattern is a behavioral pattern. For example, an ATM uses the Chain of Responsibility design pattern in money giving process. It’s a security plugin that prevents someone from using a password that has appeared in a data breach. The request can be handled by any object in the chain. It holds a chain of receiving objects and pass the request along the chain until an object handles it. Chain of Responsibility is a behavioral design pattern that lets you pass requests along a chain of handlers. ; The set of objects that can handle a request should be specified dynamically. 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. Today I will talk about Chain of Responsibility (CoR) pattern with a use case. 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. In chain of responsibility, sender sends a request to a chain of objects. 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 … There are many design patterns most developers are familiar with to name a few are – MVC , Factory, Singleton, Observer , Decorator etc. 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. You want to issue a request to one of several objects without specifying the receiver completely. 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. 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 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. 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. You should use the Chain of Responsibility Pattern when: More than one object can handle a request, and the handler is not known.