
Proxy

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(); }