Java設計模式之介面卡模式

2021-07-11 15:02:50 字數 1548 閱讀 9474

1、使用場景

介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面。以消除由於介面的不匹配所造成類的相容性問題。介面卡模式主要有類的介面卡模式、物件的介面卡模式兩種。

2、兩種介面卡模式介紹

模式所涉及的角色有:

目標(target)角色:這就是所期待得到的介面。

源(adapee)角色:現在需要適配的介面。

介面卡(adaper)角色:介面卡類是本模式的核心。介面卡把源介面轉換成目標介面。(充當中間角色)

1)類的介面卡模式

類的介面卡模式把適配的類(即源類)的api轉換成為目標類的api。

由於是類介面卡模式,因此目標不可以是類,介面卡不可以是介面而必須是類。

public

inte***ce target 

介面卡角色adapter

擴充套件了source,同時又實現了目標

(target)

介面。由於source沒有提供sampleoperation2()

方法,而目標介面又要求這個方法,因此介面卡角色

adapter

實現了這個方法。

public

class adapter extends source implements target {

/** * 由於源類

source 沒有方法sampleoperation2()

* 因此介面卡補充上這個方法

*/ @override

public

void sampleoperation2() {

//寫相關的**

2)物件的介面卡模式

與類的介面卡模式一樣,物件的介面卡模式把被適配的類的api

轉換成為目標類的

api,但物件的介面卡模式不是使用繼承關係連線到source類,而是使用委派關係連線到source類。

public

class adapter implements target{

private source source;

public adapter(source source){

this.source = source;

/** * 源類

source

有方法sampleoperation1

* 因此介面卡類直接委派即可

*/ public

void sampleoperation1(){

this.source.sampleoperation1();

/** * 源類

source

沒有方法

sampleoperation2

* 因此由介面卡類需要補充此方法

*/ public

void sampleoperation2(){

//寫相關的**

類adapter

。這個包裝類包裝了乙個source的例項,從而此包裝類能夠把source的api

與target

類的api

銜接起來。

adapter

與source是委派關係,這決定了介面卡模式是物件的。

JAVA設計模式之介面卡模式

先總結一下整個過程的感想 感覺在網上找了很多資料,大部分大牛們把這個設計模式解釋的很仔細,但是用詞實在過於專業,很難讓初學者讀懂,自己找了乙個比較恰當的例子寫了一遍,對這個設計模式有了一定的認識,希望這種解釋可以得到認可。其實總結一下介面卡模式的最終目的 在乙個沒有實現某個介面的類,想在這個介面中規...

Java設計模式之介面卡模式

介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。介面卡模式有兩種 類介面卡和物件介面卡 二者在實現上有些許區別,作用一樣。1 類介面卡模式 原理 通過繼承來實現介面卡功能。當我們要訪問的介面a中沒有我們想要的方法...

Java設計模式之介面卡模式

介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。介面卡模式有兩種 類介面卡和物件介面卡 二者在實現上有些許區別,作用一樣。1 類介面卡模式 原理 通過繼承來實現介面卡功能。當我們要訪問的介面a中沒有我們想要的方法...