Chain of responsibility
Intent
- Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.
- Launch-and-leave requests with a single processing pipeline that contains many possible handlers.
- An object-oriented linked list with recursive traversal.
Structure
COR vs Decorator
- The fact that you can break the chain at any point differentiates the Chain of Responsibility pattern from the Decorator pattern.
- Its around the order in which things will happen. If you chain them, then things will be called along the chain. With a decorator you're not guaranteed this order, only that additional responsibilities can be attached.
Hands on ...
Null object
(anti-)pattern?
Intent
- Is to encapsulate the absence of an object by providing a substitutable alternative that offers suitable default do nothing behaviour.
- In short, a design where "nothing will come of nothing"
Null Object
- The Null Object class is often implemented as a Singleton. Since a null object usually does not have any state, its state can't change, so multiple instances are identical. Rather than use multiple identical instances, the system can just use a single instance repeatedly.
Copy of Design Patterns
By Milan Hradil
Copy of Design Patterns
- 494