Select Page



Provide a surrogate or placeholder for another object to control access to it. Options are provided to implement all interfaces of the subject class as well as all of the public methods of the subject class

Source Code

/**  * Represents a proxy for Subject  */ public class Proxy extends Subject { 	/** 	 * Holds the subject instance. 	 */ 	private Subject subject;  	/** @see patterns.gof.proxy.Subject#sampleMethod() */ 	public int sampleMethod() { 		return subject.sampleMethod(); 	} }  /**  * Represents a real subject  */  public class RealSubject extends Subject { 	public int sampleMethod() { 		/* something happens here */ 		return 0; 	} }  /**  * Represents a subject  *   * @role __Subject  */  public abstract class Subject { 	/** 	 * This is sample method to be called by proxy 	 */ 	public abstract int sampleMethod(); } 

About The Author

Cédric Walter

I worked with various Insurances companies across Switzerland on online applications handling billion premium volumes. I love to continuously spark my creativity in many different and challenging open-source projects fueled by my great passion for innovation and blockchain technology.In my technical role as a senior software engineer and Blockchain consultant, I help to define and implement innovative solutions in the scope of both blockchain and traditional products, solutions, and services. I can support the full spectrum of software development activities, starting from analyzing ideas and business cases and up to the production deployment of the solutions.I'm the Founder and CEO of Disruptr GmbH.