When we looked at the Decorator design pattern, we saw the different ways of enhancing the functionality of an object. The Proxy design pattern is similar, but its goal is generally to preserve exactly (or as closely as possible) the API that is being used while offering certain internal enhancements.
Proxy is an unusual design pattern in that it isn’t really homogeneous. The many different kinds of proxies people build are quite numerous and serve entirely different purposes. In this chapter we take a look at a selection of different proxy objects, and you can find more online. ...