文章出處
文章列表
// 客戶端調用 class Client { static void Main(string[] args) { // 創建一個代理對象并發出請求 Person proxy = new Friend(); proxy.BuyProduct(); Console.Read(); } } // 抽象主題角色 public abstract class Person { public abstract void BuyProduct(); } //真實主題角色 public class RealBuyPerson : Person { public override void BuyProduct() { Console.WriteLine("幫我買一個IPhone和一臺蘋果電腦"); } } // 代理角色 public class Friend:Person { // 引用真實主題實例 RealBuyPerson realSubject; public override void BuyProduct() { Console.WriteLine("通過代理類訪問真實實體對象的方法"); if (realSubject == null) { realSubject = new RealBuyPerson(); } this.PreBuyProduct(); // 調用真實主題方法 realSubject.BuyProduct(); this.PostBuyProduct(); } // 代理角色執行的一些操作 public void PreBuyProduct() { // 可能不知一個朋友叫這位朋友帶東西,首先這位出國的朋友要對每一位朋友要帶的東西列一個清單等 Console.WriteLine("我怕弄糊涂了,需要列一張清單,張三:要帶相機,李四:要帶Iphone..........."); } // 買完東西之后,代理角色需要針對每位朋友需要的對買來的東西進行分類 public void PostBuyProduct() { Console.WriteLine("終于買完了,現在要對東西分一下,相機是張三的;Iphone是李四的.........."); } }
文章列表
全站熱搜