From the book:
Proxy has several use cases:
-
Virtual proxy creates expensive objects on demand. An example is the
LazyConnectionDataSourceProxy in the Spring Framework, which lazily creates the real JDBC DataSource when the first Statement is created.
-
Remote proxy provides a local representation of an object that sits in a different address space, for example on a remote machine. Note that the remote proxy does not have a real pointer to the remote object, but invokes the methods via RPC, RMI, Thrift, ProtoBuf, gRPC, REST, HTTP, TCP/UDP, or a different remoting mechanism.
-
Protection proxy controls access to the original object. This could be for access control or thread safety. An example is
Collections.synchronizedCollection(), which returns a new Collection that is guarded against race conditions.
0 comments