我的代理人(Proxy)

來源:互聯網
上載者:User

 

很顯然.我們目前所生活的世界裡.到處都有這類人.他們很願意協助我們去完成我自身完成起來很困難的工作.願意充當一個中介層.在這一個層次中.Proxy代理就是主導.他會為我們處理那些看上去很彆扭的事情.畢竟我們的目的是制定總體方針.兒細節可以交給代理來完成.事實上,很多情況.我們都用到了代理.例如典型的我們在.NET中使用WebService就已經在使用Proxy.通過這個代理和實際的遠程對象打交道.實際的遠程對象又是通過WebService做介面來傳遞.這也就是所謂的遠程代理.當然還有很多的代理例子.如.你要寫一個又許可權的東西.所以客戶不能自己和這種東西打交道.所以,由代理來系統管理權限而客戶通過代理來和實際對象打交道.這也就是所謂的保護代理.實際上由於是代理所以客戶也無需管理實際對象的釋放和建立.這也是通過代理來完成的.
假設.我是一個騎士正要被一位美麗的公主接見.我很榮幸.不幸的是公主只和在這次戰役有戰功的人見面.所以必須出示我的勳章.才可以和公主見面.OK讓我們來類比這一場面.
namespace ProxyMeeting
{
    using System;

   intface IMeeting
 {
   void KMeeting();  
 }

 class Knight : IMeeting
 {
                        private  bool exploit ;
                        private  string  KName;
  public Knight(string KN)
  {
                                                從資料庫查詢是否有功績
      this.exploit=IsExploit;
  }
   
                   public void Request()
  {
   if(exploit)
                                                Console.WriteLine("接見成功");
                                                else
                                                 Console.WriteLine("無法接見");
  }
 }

 class Proxy : IMeeting
 {
  private  Knight KM;
                                public  string  KName;
   public void Request()
  {
   if (KM == null)
    KM = new Knight(this.KName);
   KM.Request();
  } 
  
 }
 
//實際見面
 public class Infanta
    {
        public static int Main(string[] args)
        {
                       //公主並不直接和騎士打交道.而是通過代理
   Proxy p = new Proxy();
                                                p.KName="yarshray";
                                                P.Request();
                 return 0;
        }
    }
}

這裡可以看出.公主並未和騎士直接打交道而是通過代理.即使騎士的建立工作也是由代理來完成.並且代理也管理了騎士是否在這次戰役中建立功勳.來決定最終是否和公主見面.一切都很我們預想的一樣不是嗎?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.