《設計模式之禪》 介面卡模式

2021-09-25 04:03:27 字數 1991 閱讀 2932

介面卡模式

定義

將乙個類的介面變換客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作

介面卡模式又稱為變壓器模式,也叫做包裝模式,裝飾模式也是包裝模式的一種

簡單來說,介面卡模式就是把乙個介面或類轉換成其他的介面或類

介面卡模式有三個角色

1.target目標角色

該角色定義把其他類轉換為何種介面,也就是我們的期望介面

2.adaptee源角色

你想把誰轉換成目標角色,這個「誰」就是源角色,它是已經存在的,執行良好的類或物件,經過介面卡角色的包裝,它會變成乙個嶄新,靚麗的角色

3.adapter介面卡角色

介面卡模式的核心角色,其他兩個角色都是已經存在的角色,而介面卡角色是需要新建立的,他的職責非常簡單:把源物件轉換為目標角色

目標角色

public inte***ce itarget
目標角色的實現

public class concretetarget implements itarget 

public string request2()

public string request3()

}

源角色的實現

public class adaptee 

public void dosomething2()

public void dosomething3()

}

注意 :源角色可以是在服役狀態,也可以新建乙個源角色然後套用適配模式

核心角色是介面卡角色

介面卡角色(也就是轉換器角色) 繼承源角色 實現目標角色

public class adapter extends adaptee implements target 

public void request2()

public void request3()

}

場景類

public  class client 

}

優點1.介面卡模式可以讓兩個沒有任何關係的類在一起執行,只有介面卡能夠搞定他們之間的關係就行

2.增加了類的透明性

我們訪問的是target目標角色,但是具體的實現都委託了給源角色,而這些對高層次模組是透明的,也是它不需要關心的

3.提高了類的復用性

源角色在原有的系統中還是可以正常使用,而在目標角色中也可以充當新的角色

4.靈活性非常好

如果有一天不想要介面卡,只要刪除了介面卡就可以了,其他的**都不用修改,基本上就是類似乙個靈活的構件,想用就用,不想就解除安裝

使用場景

你有動機修改乙個已經投產的介面時,介面卡模式可能是最適合你的模式,比如系統擴充套件,需要使用乙個已有或新建立的類,但是這個類有不符合系統的介面時

注意事項

介面卡模式最好在詳細設計階段不要考慮它,它不是為了解決還處在開發階段的問題,而是解決正在服役的專案問題,介面卡模式是為了減少**修改帶來的風險。

專案一定要遵守依賴倒置原則和里斯替換原則,否則即使在適合使用介面卡的場合下,也會帶來非常大的改造。

《設計模式之禪》之介面卡模式

將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。1.target目標角色 該角色定義把其他類轉換為何種介面,也就是我們的期望介面。2.adapter源角色 你想把誰轉換成目標角色,這個 誰 就是源角色,它是已經存在的 執行良好的類或物件,經...

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...