應用署理形式來停止C#設計形式開辟的基本教程。本站提示廣大學習愛好者:(應用署理形式來停止C#設計形式開辟的基本教程)文章只能為提供參考,不一定能成為您想要的結果。以下是應用署理形式來停止C#設計形式開辟的基本教程正文
1、概述
在軟件開辟中,有些對象因為創立本錢高、拜訪時須要與其它過程交互等緣由,直接拜訪會形成體系速度慢、龐雜度增年夜等成績。這時候可使用署理形式,給體系增長一層直接層,經由過程直接層拜訪對象,從而到達隱蔽體系龐雜性、進步體系機能的目標。
2、署理形式的具體引見
署理形式為其他對象供給一種署理以掌握對這個對象的拜訪。其構造圖以下:
Subject界說了RealSubject和Proxy共用的接口,使得在任何應用RealSubject的處所都可使用Proxy
RealSubject界說了Proxy所代表的實體。
Proxy界說了一個掌握RealSubject的署理,供Client應用。
署理形式依照應用目標可以分為以下幾種:
在下面一切品種的署理形式中,虛擬署理、長途署理、智能援用署理和掩護署理較為罕見的署理形式。上面讓我們詳細看看署理形式的詳細界說。
2.1 界說
署理形式——就是給某一個對象供給一個署理,並由署理對象掌握對原對象的援用。在一些情形下,一個客戶不想或許不克不及直接援用一個對象,而署理對象可以在客戶端和目的對象之間起到中介的感化。例如電腦桌面的快捷方法就是一個署理對象,快捷方法是它所援用的法式的一個署理。
2.2 署理形式完成
看完署理形式的描寫以後,上面以一個生涯中的例子來說明下署理形式,在實際生涯中,假如有同事出國或許同伙出國的情形下,我們常常會拖這位同伙協助帶一些電子產物或化裝品等器械,這個場景中,出國的同伙就是一個署理,他(她)是他(她)同伙的一個署理,因為他同伙不克不及去國外買器械,他卻可以,所以同伙們都托他協助帶一些器械的。上面就以這個場景來完成下署理形式,詳細代碼以下:
// 客戶端挪用 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是李四的.........."); } }
在下面的代碼中都有響應的正文,這裡也不多說明了。
3、署理形式的優缺陷
周全剖析完署理形式以後,讓我們看看這個形式的優缺陷:
長處:
署理形式可以或許將挪用用於真正被挪用的對象隔離,在必定水平上下降了體系的耦合度;
署理對象在客戶端和目的對象之間起到一個中介的感化,如許可以起到對目的對象的掩護。署理對象可以在對目的對象收回要求之進步行一個額定的操作,例如權限檢討等。
缺陷:
因為在客戶端和真實主題之間增長了一個署理對象,所以會形成要求的處置速度變慢
完成署理類也須要額定的任務,從而增長了體系的完成龐雜度。