Attach additional responsibilities to an object dynamically
Decorators provide a flexible alternative to subclassing for extending functionality
Deal with object relationships, which can be changed at run time and are more dynamic
Almost all patterns use inheritance to some extent
have similar designs but different intents with Composite
Design patterns specify relationships between interfaces, by requiring some classes to have similar interfaces or placing constraints on the interfaces of some classes
Decorator pattern require the interfaces of Decorator objects to be identical to the decorated objects
Provide a surrogate or placeholder for another object to control access to it
Deal with object relationships, which can be changed at run time and are more dynamic
Almost all patterns use inheritance to some extent
Design patterns specify relationships between interfaces, by requiring some classes to have similar interfaces or placing constraints on the interfaces of some classes
Proxy pattern require the interfaces of Proxy objects to be identical to the proxied objects