天天看點

結構型模式-擴充卡模式(Adapter)

概述

​  将一個類的接口轉換成客戶希望的另外一個接口,使得原本由于接口不相容而不能一起工作的那些類能一起工作。

​  擴充卡模式分為類擴充卡模式和對象擴充卡模式,前者類之間的耦合度比後者高,且要求程式員了解現有元件庫中的相關元件的内部結構,是以應用相對較少些。

結構

  目标接口:目前系統業務所期待的接口,它可以是抽象類或接口。

​  适配者類:它是要被通路和适配的現存元件庫中的元件接口。

  擴充卡類:它是一個轉換器,通過繼承或引用适配者的對象,把适配者接口轉換成目标接口,讓客戶按目标接口的格式通路适配者。目标接口和适配者類都是固定的,需要根據實際情況設計實作擴充卡類。

類擴充卡模式

​  類擴充卡通過繼承适配者類來複用已有功能,通過實作目标接口來提供功能。

  類擴充卡模式違背了合成複用原則,如果客戶需要的類沒有接口,就無法使用使用類擴充卡,因為無法兩邊都繼承。

結構型模式-擴充卡模式(Adapter)

對象擴充卡模式

  對象擴充卡通過聚合關系複用适配者類的功能,通過實作目标接口來提供功能。

應用場景

  以前開發的系統存在滿足新系統功能需求的類,但其接口同新系統的接口不一緻。

  使用第三方提供的元件,但元件接口定義和自己要求的接口定義不同。

擴充卡模式舉例

​  Reader(字元流)、InputStream(位元組流)的适配使用的是InputStreamReader。

繼續閱讀