大戰設計模式 9 介面卡模式

2022-02-13 05:49:37 字數 1010 閱讀 7832

設計模式使用的例子

將乙個介面轉換成客戶希望的另乙個介面,使介面不相容的那些類可以一起工作。

target(目標抽象類):目標抽象類定義了客戶所需要的介面,可以是乙個抽象類或介面,也可以是乙個具體的類。

adapter(介面卡類):介面卡可以呼叫另乙個介面,作為乙個轉換器,對adaptee和target進行適配。

介面卡類是適配者模式的核心,在介面卡模式中,它通過繼承target並關聯乙個adaptee物件使二者產生聯絡。

adaptee(被適配者類):它定義了乙個已經存在的介面,這個介面需要適配,一般是乙個具體類,

包含了客戶希望使用的業務方法,在某些情況下可能沒有適配者類的源**。

將目標類和適配者類解耦,從而無須修改原有結構(只需新增乙個介面卡類)

增加了類的透明性(適配者類中的業務實現過程)和復用性(同乙個適配者類可以在多個不同的系統中復用)

過多的使用介面卡會導致業務複雜,在不必要的情況下依舊使用介面卡,會多出很多不必要的類。

乙個類適配過多的情況,從而導致介面卡的責任過於重。

系統需要使用一些現有的類,而這些類的介面(例如方法名)不符合系統的需要,甚至沒有這些類的原始碼。

想要建立乙個可以復用的類,用於一些彼此之間沒有太大關聯的類,包括一些可能在將來引進的類一起工作。

1.介面卡模式理解起來比較簡單:

客戶端想要呼叫a類的介面,但是由於兩方無法匹配,但是客戶端的**不能改變而且被呼叫類的介面也不能改變。

這時介面卡就像一座橋梁一般,將客戶的請求進行封裝從而變成a類介面可以識別的型別。

其中的a類我們就稱為被適配者類

2.這裡尤其要對比裝飾者模式來說:

裝飾者模式:是將傳入的物件進行裝飾,但裝飾完成之後依舊是原來的物件,裝飾只是改變其內部屬性,並不對其他的型別進行匹配(只是自己想單純裝飾而已)

介面卡模式:是將傳入的物件直接改變成新的乙個物件,從而適配乙個介面需要的方法和型別(為了別人去適配)

一般來說,適配一次就達到目的,而裝飾一般都有多次

參考部落格:

設計模式9 介面卡模式

介面卡分為,類介面卡 物件適配 介面適配方式 類介面卡方式採用繼承方式,物件適配方式使用建構函式傳遞 我們就拿日本電飯煲的例子進行說明,日本電飯煲電源介面標準是110v電壓,而中國標準電壓介面是220v,所以要想在中國用日本電飯煲,需要乙個電源轉換器。我們先定義日本220v電源介面和實現。日本110...

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

介面卡模式屬於結構型模式。主要分為三類 類介面卡模式 物件介面卡模式 介面介面卡模式。無論是物件介面卡模式還是類介面卡模式都具有如下優點 具體來說,類介面卡模式還有如下優點 物件介面卡模式還有如下優點 介面卡類 public class voltageadapter extends voltage2...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...