There are several uses of proxies. Here are some main use cases:
- Creating virtualized objects, such as remote objects, persistent objects, and more
- The lazy creation of objects
- Transparent logging, tracing, profiling, and more
- Embedded domain specific languages
- Generically interposing abstractions in order to enforce access control