設計模式 介面卡模式

2021-07-09 08:25:33 字數 1420 閱讀 2476

adapter,將乙個類的介面轉換成客戶希望的另外乙個介面,

adapter

模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。

通俗一點,就好比我們各自的方言,需要有乙個精通這種語言的和我們能聽得懂的語言的人來為我們翻譯。方便我們去知道另一方說的是什麼意思。

目的是使控制範圍之外的乙個原有物件與某個介面匹配。

主要應用於希望復用一些現存的類,但是介面又與復用環境要求不一致的情況。

target(這是客戶所期待的介面,目標可以是具體的或抽象的類,也可以是介面):

/// /// target(這是客戶所期待的介面,目標可以是具體的或抽象的類,也可以是介面)

///

class target

}

adaptee(需要適配的類,即需要翻譯的類):

/// /// adaptee(需要適配的類,即需要翻譯的類)

///

class adaptee

}

adapter(通過在內部包裝乙個adaptee物件,把源介面轉換成目標介面):

/// /// adapter(通過在內部包裝乙個adaptee物件,把源介面轉換成目標介面)

///

class adapter:target

}

客戶端**:

class program

}

使用乙個已經存在的類,但如果它的介面,也就是它的方法和我們的要求不相同時,並且雙方都不太容易修改的時候再使用介面卡模式適配,一般在軟體開發後期或者維護期使用。

1、將目標類和適配者類解耦

2、增加了類的透明性和復用性,將具體的實現封裝在適配者類中,對於客戶端類來說是透明的,而且提高了適配者的復用性

3、靈活性和擴充套件性都非常好,符合開閉原則

由於介面卡類是適配者類的子類,因此可以再介面卡類中置換一些適配者的方法,使得介面卡的靈活性更強。

對於c#等不支援多重繼承的語言,一次最多只能適配乙個適配者類,而且目標抽象類只能為介面,不能為類,其使用有一定的侷限性,不能將乙個適配者類和他的子類同時適配到目標介面。

把多個不同的適配者適配到同乙個目標,也就是說,同乙個介面卡可以把適配者類和他的子類都適配到目標介面。

與類介面卡模式相比,要想置換適配者類的方法就不容易。

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

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

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

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式 介面卡模式

01 02 author rollen holt 設計模式之 介面卡模式 03 04 05 inte ce window 11 12 abstract class windowadapter 16 public void close 19 public void activated 22 publi...