Contact Me

Proxy

 This pattern allows you to create an object (the proxy) that acts as an intermediary between a client and a target object, and controls access to the target object. This can be useful when you want to add additional functionality or behavior to the target object, and when you want to abstract the details of the target object from the client.


Here is an example of the proxy pattern in JavaScript:


class Target {

constructor() {

  this.message = 'Hello, World!';

}

greet() {

  console.log(this.message);

}

}

class Proxy {

constructor() {

  this.target = new Target();

}

greet() {

  console.log('Proxy: Before greeting...');

  this.target.greet();

  console.log('Proxy: After greeting...');

}

}

const proxy = new Proxy();

proxy.greet();

// Output:

// Proxy: Before greeting...

// Hello, World!

// Proxy: After greeting...


In this example, the Target class is a class that represents the object that the proxy controls access to, and the Proxy class is a class that represents the proxy object. The Target class has a greet() method that prints a message to the console, and the Proxy class has a greet() method that wraps the call to the greet() method of the target object with additional behavior.

To use the proxy pattern, we create an instance of the Proxy class, and then call the methods of the proxy object as if they were methods of the target object. The proxy object will intercept these calls and execute the additional behavior before or after calling the corresponding methods of the target object.