Design Mode-proxy, design mode proxy
The proxy mode provides a proxy for other objects to control access to this object. In some cases, a customer does not want to directly reference another object, and the proxy object can play a mediation role between the client and the target object. The proxy mode generally involves three roles:
The following example uses Java and mode:
// Abstract role: abstract public class Subject {abstract public void request () ;}// real role: implements the Subject request () method public class RealSubject extends Subject {public RealSubject () {} public void request () {System. out. println ("From real subject. ") ;}} // proxy role: public class ProxySubject extends Subject {// attribute private Subject realSubject; public ProxySubject (Subject realSubject) {this. realSubject = realSubject} // This method encapsulates the request Method public void request () {preRequest (); realSubject. request (); // The request METHOD postRequest () of the real object is executed here ();}...} // client call: RealSubject real = new RealSubject (); Subject sub = new ProxySubject (real); Sub. request ();
From the above code, we can see that the customer actually needs to call the request () method of the RealSubject class, And now uses ProxySubject to proxy the RealSubject class, which achieves the same purpose, other methods (preRequest () and postRequest () are encapsulated to handle other problems.