設計模式-適配器模式怎麼玩的?

一、適配器模式是什麼?

適配器模式(Adapter Pattern):將一個接口轉換成客戶希望的另一個接口,使接口不兼容的那些類可以一起工作,其別名為包裝器(Wrapper)。適配器模式既可以作為類結構型模式,也可以作為對象結構型模式。

二、適配器使用場景?

1、已經存在的類,它的方法和需求不匹配(方法結果相同或相似)的情況。 ​

2、適配器模式不是軟件設計階段考慮的設計模式,是隨著軟件維護,由於不同產品、不 同廠家造成功能類似而接口不相同情況下的解決方案。有點亡羊補牢的感覺。

在適配器模式中,我們通過增加一個新的適配器類來解決接口不兼容的問題,使得原本沒有任何關係的類可以協同工作。根據適配器類與適配者類的關係不同,適配器模式可分為對象適配器和類適配器兩種,在對象適配器模式中,適配器與適配者之間是關聯關係;在類適配器模式中,適配器與適配者之間是繼承(或實現)關係。

設計模式-適配器模式怎麼玩的?

<code>ScoreOperation:目標抽象類定義客戶所需接口,可以是一個抽象類或接口,也可以是具體類。
OperationAdapter: 適配器。 適配器可以調用另一個接口,作為一個轉換器,對 適配者和目標抽象類 進行適配,適配器類是適配器模式的核心,在對象適配器中,它通過繼承 目標抽象類 並關聯一個 適配者 對象使二者產生聯繫。
BinarySearch、QuickSort(適配者類):適配者即被適配的角色,它定義了一個已經存在的接口,這個接口需要適配,適配者類一般是一個具體類,包含了客戶希望使用的業務方法,在某些情況下可能沒有適配者類的源代碼。
適配器類中繼承了目標抽象類, 又有適配者的引用(即上邊說的對象適配模式的關聯關係)。/<code>

三、適配器特性?

優點:

1、能提高類的透明性和複用,現有的類複用但不需要改變。

2、目標類和適配器類解耦,提高程序的擴展性。

3、在很多業務場景中符合開閉原則。

缺點:

1、適配器編寫過程需要全面考慮,可能會增加系統的複雜性。

2、增加代碼閱讀難度,降低代碼可讀性,過多使用適配器會使系統代碼變得凌亂。

四、補充

雙向適配器是什麼?

在對象適配器的使用過程中,如果在適配器中同時包含對目標類和適配者類的引用,適配者可以通過它調用目標類中的方法,目標類也可以通過它調用適配者類中的方法,那麼該適配器就是一個雙向適配器。

大家好,我是小勁,專注分享java知識點,如有總結不到位的,歡迎小夥伴指點。感謝大家閱讀,歡迎點贊、轉發...


分享到:


相關文章: