Describe Decorator Pattern and all that juicy stuff!
- Define an interface that describes a protocol (a condition) that other classes must follow to be able to collaborate with the client code ( the code that will use the adapted object). Then one must create an adapter class that implements the client interface while wrapping the service object. The adapter receives calls from the client, via the adapter interface, and translates them into calls to the wrapped service object in a format it can understand
Chain of responsibility