JAVA設計模式 介面卡模式

2021-06-14 15:19:41 字數 1453 閱讀 5243

介面卡模式

要點:1. 介面卡模式主要應用於「希望復用一些現存的類,但是介面又與復用環境要求不一致的情況」,在遺留**復用、類庫遷移等方面非常有用。

2. 介面卡模式有物件介面卡和類介面卡兩種形式的實現結構,但是類介面卡採用「多繼承」的實現方式,帶來了不良的高耦合,所以一般不推薦使用。物件介面卡採用「物件組合」的方式,更符合松耦合精神。

問題引出:大家生活中可能碰到的乙個問題就是你新買的手機自帶的耳機是2.5介面的,不幸的是有一天你的耳機壞了,你去市面上根本就找不到2.5的耳機了,基本上是3.5介面了,沒辦法你只好買了個3.5介面的耳機,老闆告訴你:「我給你乙個介面卡」這不問題就解決了。

問題分析:3.5的介面的耳機在你手機上本來是沒法使用的,因為它沒有按照2.5介面的設計啊,而現在我又想使用這幅耳機,於是乎有了「介面卡(adapter)」這個乙個東西出來了。

adapter模式的定義:把乙個類的介面變換成客戶端所期待的另外一種介面,使得原本由於介面不相容而不能再一起工作的那些類可以一起工作。

介面卡模式分類:1.類的介面卡模式(採用繼承實現)2.物件介面卡(採用物件組合方式實現)

類的介面卡類圖:

介面卡模式的**實現

///

///定義客戶端期待的介面

/// public

class

target

}//////

定義需要適配的類

/// public

class

adaptee

}//////

定義介面卡

/// public

class

adapter:target

}

4.3 客戶端**

class

program

}

在runtest方法中通過反射最終呼叫我們所編寫的測試方法。我們可從巨集觀上來分析改**,junit作為乙個框架,他是沒法知道我們要寫些什麼樣的測試方法的,也是就是說他沒法在runbare方法中直接呼叫我們所寫的測試方法,他就採用介面卡模式這樣的乙個方式來實現。junit框架本身沒法直接呼叫客戶端所寫的測試類,但他可以直接呼叫他本身擁有的類testcase,這裡的testcase就相當於adapter了,自己所寫了測試類相當於adaptee角色。

預設的介面卡模式(default adapter):預設的介面卡模式為乙個介面提供預設的實現,子類可以從這個預設的實現類進行擴充套件,而不必而原有的介面進行擴充套件。相信大家在學習swing時「awt中事件的處理」有所接觸。他的好處在於客戶端不需要去實現與他無關的方法,只做他最關心的事。

java設計模式 介面卡模式

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

Java設計模式 介面卡模式

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

Java設計模式 介面卡模式

介面卡模式 adapter 將某個類的介面轉換成客戶端期望的另乙個介面表示,目的是消除由於介面不匹配所造成的類的相容性問題。1 目標介面 target 客戶所期待的介面,目標可以是具體的或抽象的類,也可以是介面 2 需要適配的類 original 需要適配的物件 3 介面卡 adapter 通過包裝...