• Decorators are transparent to the client, unless the client depends on a particular component.
RULE: Open classes for extension and close for changes.
Programming Patterns - Strategy
Encapsulating a family of interchangeable algorythms which can be modified independently from the client.
Programming Patterns - Observer
When the subject changes, it notifies and updates its observers, who know nothing about each other.