The Proxy design pattern solves problems like:
How can the access to an object be controlled?
How can additional functionality be provided when accessing an object?
See Applicability section for all problems Proxy can solve. See Solution section for how Proxy solves the problems.