人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

設計模式c#語言描述——適配器模式

設計模式c#語言描述——適配器模式

更新時間:2022-07-14 文章作者:未知 信息來源:網絡 閱讀次數:

設計模式c#語言描述——適配器(Adapter)模式



*本文參考了《JAVA與模式》的部分內容,適合于設計模式的初學者。



適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。包括類的適配器模式和對象的適配器模式兩種不同的形式。



類的適配器模式把被適配的類的API轉換成為目標類的API,其靜態結構圖如下:







模式的角色如下:

目標(Target)角色:這就是所期待得到的接口。注意這里討論的是類的適配器模式,因此目標不可以是類。

源(Adaptee)角色:現有需要適配的接口。

適配器(Adapter)角色:把源接口轉換成目標接口。



Target;

public interface Target

{



void sampleOperation1();



void sampleOperation2();//源類不包含的方法



}// END INTERFACE DEFINITION Target



Adaptee;

public class Adaptee

{



public void sampleOperation1()

{



}



}// END CLASS DEFINITION Adaptee



Adapter;

public class Adapter : Adaptee,Target

{



public void sampleOperation2()

{

}



}// END CLASS DEFINITION Adapter



類的適配器模式的效果:

使用一個具體類把源適配到目標中,這樣一來,如果源以及源的子類都使用此類適配,就形不通了。

由于適配器類是源的子類,因此可以在適配器類中置換掉(Override)源的一些方法。



與類的適配器模式相似,對象的適配器模式把被適配的類的API轉換成目標類的API,與類的適配器模式不同,對象的適配器模式不是使用繼承關系連接到Adaptee類,而是使用委派關系,類圖如下所示:







Target;

public interface Target

{



void sampleOperation1();



void sampleOperation2();



}// END INTERFACE DEFINITION Target



Adaptee;

public class Adaptee

{



public void sampleOperation1()

{



}



}// END CLASS DEFINITION Adaptee



Adapter:

public class Adapter : Target

{



private Adaptee adaptee;



public void Adapter(Adaptee adaptee)

{

this.adaptee=adaptee;

}



public void sampleOperation1()

{

adaptee.sampleOperation1();

}



public void sampleOperation2()

{



}



}// END CLASS DEFINITION Adapter



對象適配器模式的效果:

一個適配器可以把多種不同的源適配到同一個目標。也就是說,同一個適配器可以把源類和它的子類都適配到目標接口。

與類的適配器相比,要想置換源類的方法就不容易。如果一定要置換源類的方法,就只好先做一個源類的子類,將方法置換掉,再把源類的子類當作真正的源進行適配。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 卓尼县| 甘德县| 封丘县| 安远县| 吴旗县| 龙里县| 涡阳县| 永年县| 玉溪市| 任丘市| 张家港市| 阿勒泰市| 枣庄市| 无为县| 乳山市| 惠州市| 集安市| 巴青县| 区。| 梁平县| 宜川县| 乌拉特后旗| 大连市| 丹棱县| 南昌县| 南江县| 柳林县| 安义县| 深泽县| 泰州市| 安陆市| 屏东县| 长兴县| 开化县| 日照市| 海伦市| 喀喇沁旗| 安化县| 法库县| 泾川县| 夹江县|