Proxy Pattern applies when the program needs to know about or to intervene the behavior of accessing objects. There are several detailed scenarios in Proxy Pattern, and we can distinguish those scenarios by their different purposes:
- Remote proxy: A proxy with interface to manipulate remote objects, such as data items on a remote server
- Virtual proxy: A proxy that manages expensive objects which need to be loaded on demand
- Protection proxy: A proxy that controls access to target objects, typically it verifies permissions and validates values
- Smart proxy: A proxy that does additional operations when accessing target objects
In the section of Adapter Pattern, we used factory method
open that creates an object asynchronously. As a trade-off, ...