Java設計模式5 結構型 介面卡模式

2021-08-14 02:41:24 字數 2736 閱讀 3296

介面卡模式是各種模式的起源

介面卡模式將某個類的介面轉換成客戶端期望的另乙個介面表示,目的是消除由於介面不匹配所造成的類的相容性問題。

核心思想就是:有乙個source類,擁有乙個方法,待適配,目標介面是targetable,通過adapter類,將source的功能擴充套件到targetable裡。

1、介面卡模式分類:

a.類的介面卡模式.

b.物件的介面卡模式.

c.介面的介面卡模式。

2、類的介面卡模式,**演示:

a.source類
public

class source

}

b.目標介面targetable
public

inte***ce targetable

c.類介面卡
//繼承了source,實現新介面,這樣我們就可以用這個類既可以訪問之前的method1,也可以訪問新類的method2了

public

class

adapter

extends

source

implements

targetable

}

d.測試類
public

class adaptertest

}

結果:

this is original method!

this is the targetable method!

這樣targetable介面的實現類就具有了source類的功能。

3、物件的介面卡模式,**演示:

基本思路和類的介面卡模式相同,只是將adapter類作修改,這次不繼承source類,而是持有source類的例項,以達到解決相容性的問題。
a.source類

public

class

source

} b.目標介面targetable

public

inte***ce

targetable

上面2個和之前一樣

c.物件介面卡

public

class

adapter

implements

targetable

@override

public

void

method2()

@override

public

void

method1()

}d.測試類

public

class

adaptertest

} 結果:

this is original method!

this is the targetable method!

和上面的功能一樣,只是把需要適配的物件傳進來了,沒有使用繼承的方式。

4、介面的介面卡模式,**演示:(比較重要)

有時我們寫的乙個介面中有多個抽象方法,當我們寫該介面的實現類時,必須實現該介面的所有方法,這明顯有時比較浪費,因為並不是所有的方法都是我們需要的,有時只需要某一些。

為了解決這個問題,我們引入了介面的介面卡模式,借助於乙個抽象類,該抽象類實現了該介面,實現了所有的方法,而我們不和原始的介面打交道,只和該抽象類取得聯絡。

我們寫乙個類,繼承該抽象類,重寫我們需要的方法就行

a.介面sourceable

public

inte***ce

sourceable

目的就是實現所有的介面,但是方法都是空的,為的就是給其他的類繼承

public

abstract

class

implements

sourceable

public

void method2(){}

} c.繼承抽象類的類(重寫我們需要的方法)

public

class

sourcesub1

extends

public

void method1()

} public

class

sourcesub2

extends

public

void method2()

} d.測試

public

class

public

static

void main(string args)

} 輸出:

the sourceable inte***ce's

first

sub1!

thesourceable

inte***ce's

second

sub2!

5、三種介面卡模式的應用場景

類的介面卡模式:當希望將乙個類轉換成滿足另乙個新介面的類時,可以使用類的介面卡模式,建立乙個新類,繼承原有的類,實現新的介面即可。

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

1 模式理解 介面卡模式其實還是比較好理解的,就拿多功能插線板來說把,就相當於乙個介面卡,很多態別的插頭都是可以在這個插線板上匹配上的。說的專業一點就是當多個物件想實現同一類功能的時候,可以通過介面卡來調取相應的物件,實現給物件相應的功能,哈哈好像說的也不怎麼專業 2 應用場景 介面卡模式跟工廠模式...

設計模式 結構型 介面卡

pragma once ifndef adapter h define adapter h 需要被adapt 的類 class target virtual target virtual void request 0 與被adapt 物件提供不相容介面的類 class adaptee adaptee...

設計模式 結構型 介面卡模式

什麼是介面卡模式 將乙個介面轉換成客戶希望的另乙個介面,使介面不相容的那些類可以一起工作。介面卡模式既可以作為類結構型模式,也可以作為物件結構型模式。介面卡的分類 介面卡中有類介面卡和物件介面卡,兩者的區別在於介面卡與適配者的關係不同,物件介面卡中兩者之間的關係是關聯關係,類介面卡模式中兩者是繼承關...