国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:24:43
字體:
來源:轉載
供稿:網友
設計模式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



對象適配器模式的效果:

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 韶山市| 建湖县| 菏泽市| 白银市| 安泽县| 哈尔滨市| 梅河口市| 江北区| 赣榆县| 信丰县| 徐水县| 芦山县| 合川市| 区。| 蓬莱市| 衢州市| 松江区| 凤凰县| 明溪县| 宁陵县| 遂川县| 道真| 许昌县| 漯河市| 平定县| 海丰县| 屏山县| 万年县| 石河子市| 都昌县| 宣恩县| 收藏| 诸暨市| 利辛县| 东明县| 汽车| 庄河市| 鄱阳县| 西安市| 固阳县| 从化市|