/// <summary> /// 定義了RealSubject和Proxy的共用接口,這樣就在任何使用RealSubject的地方均可以使用Proxy /// </summary> public abstract class Subject { public abstract void Request(); } /// <summary> /// 定義了Proxy所表明的真實實體 /// </summary> public class RealSubject : Subject { public override void Request() { Console.WriteLine("真實的請求"); } } /// <summary> /// 保存一個引用使得代理能夠訪問實體,並提供一個與Subject的接口相同的接口,這樣代理就能夠用來替代實體。 /// </summary> public class Proxy : Subject { RealSubject realSubject; public override void Request() { if (realSubject == null) realSubject = new RealSubject(); realSubject.Request(); } }
客戶端代碼安全
Proxy p = new Proxy(); p.Request(); Console.ReadLine();
結果ide