Proxy Pattern

This lesson discusses how objects can act on behalf of other objects without the clients knowing they aren't talking to the intended object.

What is it ?

The literal definition of proxy is the authority to represent someone else. In a proxy pattern setup, a proxy is responsible for representing another object called the subject in front of clients. The real subject is shielded from interacting directly with the clients. There could be several reasons why one would want to front a subject with a proxy, some are listed below:

  • To access remote objects over the internet, running in another JVM or another address space

  • To protect a subject from clients not authorized to access it

  • To stand in place of an object that may be expensive to create and delay the object's creation till it is accessed

  • To cache queries or results from subject for clients

  • There are a number of other use cases such as the firewall proxy, synchronization proxy etc.

Formally, the pattern is defined as a mechanism to provide a surrogate or placeholder for another object to control access to it.

Get hands-on with 1400+ tech skills courses.