Proxies versus Decorators
Proxy and Decorator design patterns are often confused and mislabeled, mostly because of the similarity in their implementation. While they have similar implementation, they are different in intent: Proxies provide some sort of access control to the object they proxy; while decorators add responsibilities to the object that they decorate.
Both patterns follow the general structure of Figure 4, with the proxy or decorator implementing the same interface or abstract class as the real subject. The prototypical example of a proxy is the remote proxy, where the client to a service cannot have a direct reference to the service itself (as it, say, resides on another computer); so instead, it has a reference to a proxy that can marshal requests and responses to and from the actual service. The prototypical examples of decorators are GUI widgets, where decorators add additional functionality to base components (such as adding a scrollable decorator to a panel component).
T.B.