public void Request() { if (CheckAccess()) { if (realSubject == null) { realSubject = new RealSubject(); } realSubject.Request(); LogAccess(); } }
public void Run() { Console.WriteLine("Client: Executing the client code with a real subject:"); var realSubject = new RealSubject(); ClientCode(realSubject); Console.WriteLine(); Console.WriteLine("Client: Executing the same client code with a proxy:"); var proxy = new Proxy(realSubject); ClientCode(proxy); }
static void Main(string[] args) { Client client = new Client(); Console.WriteLine("Client: Executing the client code with a real subject:"); RealSubject realSubject = new RealSubject(); client.ClientCode(realSubject); Console.WriteLine(); Console.WriteLine("Client: Executing the same client code with a proxy:"); Proxy proxy = new Proxy(realSubject); client.ClientCode(proxy); }
public Proxy(RealSubject realSubject) { this.realSubject = realSubject; }