The document describes the proxy pattern. The proxy pattern provides a surrogate or placeholder for another object to control access to it. A proxy can act as a local representative for real objects located elsewhere. Some key points:
- A proxy maintains a reference to a real subject and provides an interface identical to the real subject. This allows clients to access the real subject indirectly through the proxy.
- Proxies are useful when accessing heavy weight real subjects would result in performance issues. The proxy can allow lighter-weight access when the full functionality of the real subject is not needed.
- Common proxy types include remote proxies, virtual proxies that load lazily, and access control proxies that restrict access to the real subject.