java設計模式 介面卡模式(結構型模式)

2021-09-11 22:42:07 字數 1949 閱讀 7835

情景引入:介面卡是什麼,你一定不難理解,因為現實生活中到處都是。比方說:用計算機訪問照相機的 sd 記憶體卡時需要乙個讀卡器。小公尺6智慧型手機沒有耳機孔需要乙個耳機轉換頭type-c轉3.5mm耳機孔等等。其實oo介面卡和真實世界的介面卡扮演著同樣的角色:將乙個介面轉換為另乙個介面,以符合客戶的期望。

head frist設計模式這裡舉了乙個很好的例子。已有的系統,你希望它能和乙個新的廠商類庫搭配使用。但是這個新的廠商設計出來的介面,不同於舊廠商的介面。

加入新寫的乙個類,將新廠商的介面轉化為你所期望的介面。

所以介面卡模式(adapter)的定義如下:將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。

介面卡模式(adapter)包含以下主要角色。

目標(target)介面:當前系統業務所期待的介面,它可以是抽象類或介面。

適配者(adaptee)類:它是被訪問和適配的現存元件庫中的元件介面。

介面卡(adapter)類:它是乙個轉換器,通過繼承或引用適配者的物件,把適配者介面轉換成目標介面,讓客戶按目標介面的格式訪問適配者。

介面卡模式分為類結構型模式和物件結構型模式兩種。

類介面卡模式的結構圖:

類介面卡模式的**如下。

//目標介面

public inte***ce target

//適配者介面

public class adaptee

}

類介面卡類 :

public class classadapter extends adaptee implements target 

}

客戶端**:

public class classadaptertest 

}

輸出結果:

類介面卡模式:

適配者中的業務**被呼叫!

物件介面卡模式的結構圖:

物件介面卡模式的**如下。adaptee類和target介面與上面一樣。

物件介面卡類:

public class objectadapter implements target 

@override

public void request()

}

客戶端**:

public class objectadaptertest 

}

輸出結果:

物件介面卡模式:

適配者中的業務**被呼叫!

介面卡模式(adapter)可擴充套件為雙向介面卡模式,雙向介面卡類既可以把適配者介面轉換成目標介面,也可以把目標介面轉換成適配者介面。

JAVA設計模式 介面卡模式

介面卡模式 要點 1 介面卡模式主要應用於 希望復用一些現存的類,但是介面又與復用環境要求不一致的情況 在遺留 復用 類庫遷移等方面非常有用。2 介面卡模式有物件介面卡和類介面卡兩種形式的實現結構,但是類介面卡採用 多繼承 的實現方式,帶來了不良的高耦合,所以一般不推薦使用。物件介面卡採用 物件組合...

java設計模式 介面卡模式

介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。用電器做例子,膝上型電腦的插頭一般都是三相的,即除了陽極 陰極外,還有乙個地極。而有些地方的電源插座卻只有兩極,沒有地極。電源插座與膝上型電腦的電源插頭不匹配使得膝上型電腦無法使用。...

Java設計模式 介面卡模式

目錄 介面卡模式的個人理解 轉換方法 介面卡模式的定義 通用類圖 角色定義 target目標角色 adaptee源角色 adapter介面卡角色 通用源 介面卡模式的優點 首先有乙個目標角色 乙個源角色還有乙個介面卡角色。我們要做的就是利用介面卡角色將源角色轉換為目標角色。而目標角色是乙個正在良好執...