結構型模式 介面卡模式

2021-09-12 23:04:00 字數 3476 閱讀 4831

目錄

1.概述

1.1 定義

1.2 作用

1.3 應用場景

2.類圖

2.1 類介面卡模式類圖

2.2 物件介面卡模式類圖

3.角色

4.例項

4.1 類介面卡

4.2 物件介面卡

5.3 兩者的區分

5.優缺點

5.1 優點

5.2 缺點

,也可以作為物件結構型模式

介面卡模式可以將乙個類的介面和另乙個類的介面匹配起來,使用的前提是不能或不想修改原來的適配者介面(adaptee)和目標介面(target)。

介面卡就是一種適配中介軟體,它存在與不匹配的二者之間。用於連線二者,將不匹配變為匹配。

修改乙個正常執行的系統的介面,這時候應該考慮使用介面卡模式。

案例如下:

目標類手機充電器:5v的交流電

被適配者類

家用電壓:220v

介面卡類

電源介面卡,將220v家用直流電轉換為5v的交流電

角色如下所示:

1.target(抽象目標類)

它表示客戶端需要使用的特定領域的介面,該介面不能隨意改動,如果改動,其子類就要必須實現這個方法。

2.adapter(介面卡類)

它是介面卡模式的核心,用於呼叫另乙個介面,它作為乙個轉換器,對adapter介面和target

介面進行適配。

如果是類介面卡adapter實現了target介面,並繼承了adaptee類。在實現target介面的request()

方法時,可以直接呼叫從adaptee類繼承過來的specifirequest()方法

如果是物件介面卡adapter繼承了target類且與adaptee是關聯關係,即在adapter中定義了adaptee

物件,從而可以呼叫在adaptee類中已經實現的方法

3.adaptee(被適配者類)

用於定義乙個已經存在的介面,這個介面需要被適配。

4.client(客戶類)

用於與符合target介面的物件進行協同。

目標類:

/**

* @author administrator

*/public inte***ce playmovie

介面卡類:

/**

* 介面卡:介面卡模式的核心

* @author administrator

*/public class formatmovie extends playmp4 implements playmovie

}

被適配者類:

/**

* @author administrator

*/public class playmp4

}

測試類:

public class test 

}

執行結果:目標類:

/**

* @author administrator

*/public inte***ce playmovie

介面卡類:

/**

* 介面卡:介面卡模式的核心

* @author administrator

*/public class formatmovie implements playmovie

}

被適配者類:

/**

* @author administrator

*/public class playmp4

}

測試類:

public class test 

}

執行結果:從上面的例項**可以看出,類介面卡和物件介面卡的區別所在。乙個是通過繼承,從而呼叫父類被適配者的方法;另乙個是通過定義被介面卡的物件,從而進行呼叫方法。

1.可以讓任何兩個沒有關聯的類一起執行。2.提高了類的復用1.過多的使用介面卡,會讓系統非常凌亂,不易整體進行把握。比如:明明看到呼叫的是a介面,其實內部被適配成了b介面的實現。

**如下所示:

public class enumiter implements iterator 

//將對目標物件的呼叫**給真正的被適配的物件

public boolean hasnext()

public object next()

public void remove()

}

使用:

enumeration parameternames = req.getparameternames();

iterator enumiter = new enumiter(parameternames);//這就是需要實現iterator的原因

while (enumiter.hasnext())

結構型模式 介面卡模式

介面卡模式 將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。介面卡模式角色目標 targe 角色 該角色定義要轉換成的目標介面 源 adaptee 角色 需要被轉換成目標角色的源角色 介面卡 adapter 角色 該角色是介面卡模式的核心,...

結構型模式 介面卡模式

將乙個類 adaptee 的介面轉換成客戶 client 希望的另外乙個介面 target 為什麼要適配 須要的東西已做好,可是不能用。短時間又不能改造。想辦法適配它。使得原本因為介面不相容而不能一起工作的那些類能夠一起工作。姚明說漢語,其它隊員和教練說英語,他們不能溝通交流。團隊就不能非常好地合作...

結構型模式 介面卡模式

介面卡模式 adapter pattern 是用來實現不相容介面之間的轉換媒介,例如想把舊元件用於新系統或把新元件用於老系統中,一般若不對 進行任何修改使兩者就能夠通訊的情況則很少見,但修改 又不切實際或可能無法直接訪問這些 元件是第三方以外部庫方式提供 此時可編寫乙個額外的 層來讓新舊介面之間能夠...