Purpose:
To control access to an object, provide a surrogate or placeholder
(proxy) for it. As a mostly used strategy, Proxy can defer the creation
and initialization of the object until it is on demand.
Structure:
Similar to adapter, client includes an object of proxy to access, and proxy includes a real object that proxy represents.
Difference from Adapter:
Adapter provides a different interface to the object it adapts. In
contrast, Proxy provides the same interface as its subject. As a
protection of real object, Proxy can refuse to perform an operation
that the subject will perform.
Example:
http://www.javaworld.com/javaworld/jw-02-2002/jw-0222-designpatterns.html
Reference:
Book: (GoF)Design Patterns
http://en.wikipedia.org/wiki/Proxy_design_pattern
http://www.inf.bme.hu/ooret/1999osz/DesignPatterns/Proxy4/
http://alumni.media.mit.edu/~tpminka/patterns/Proxy.html