Adapter is retrofitted to make unrelated classes work together. Adapter provides a different interface to its subject. Proxy provides the same interface. Decorator provides an enhanced interface. Adapter changes an object's interface, Decorator enhances an object's responsibilities.
Decorator is thus more transparent to the client.
As a consequence, Decorator supports recursive composition, which isn't possible with pure Adapters . Composite and Decorator have similar structure diagrams, reflecting the fact that both rely on recursive composition to organize an open-ended number of objects. Composite can be traversed with Iterator . Visitor can apply an operation over a Composite . Composite could use Chain of Responsibility to let components access global properties through their parent.