設計模式之介面卡模式

2021-09-25 17:46:46 字數 860 閱讀 7840

介面卡相當於一種中介軟體,轉換器。

舉個例子,當我們的電腦想再連線乙個顯示屏,但顯示屏只有乙個vga口和vga線,而我們的電腦只有乙個hdmi口,那我們就需要一條hdmi轉vga的轉換線來連線。

介面卡模式有兩種:類介面卡、物件介面卡,介面介面卡

1、類介面卡模式:

原理:通過繼承來實現介面卡功能。

當我們要訪問的介面a中沒有我們想要的方法 ,卻在另乙個介面b中發現了合適的方法,我們又不能改變訪問介面a,在這種情況下,我們可以定義乙個介面卡p來進行中轉,這個介面卡p要實現我們訪問的介面a,這樣我們就能繼續訪問當前介面a中的方法,然後再繼承介面b的實現類bb,這樣我們可以在介面卡p中訪問介面b的方法了,這時我們在介面卡p中的介面a方法中直接引用bb中的合適方法。

2、物件介面卡模式:

原理:通過組合來實現介面卡功能

當我們要訪問的介面a中沒有我們想要的方法 ,卻在另乙個介面b中發現了合適的方法,我們又不能改變訪問介面a,在這種情況下,我們可以定義乙個介面卡p來進行中轉,這個介面卡p要實現我們訪問的介面a,這樣我們就能繼續訪問當前介面a中的方法,然後在介面卡p中定義私有變數b(物件)(b介面型別的變數),再定義乙個帶引數的構造器用來為物件b賦值,再在a介面的方法實現中使用物件b呼叫其**於b介面的方法。

3、介面介面卡模式:

原理:通過抽象類來實現適配

當存在這樣乙個介面,其中定義了n多的方法,而我們現在卻只想使用其中的乙個到幾個方法,如果我們直接實現介面,那麼我們要對所有的方法進行實現,哪怕我們僅僅是對不需要的方法進行置空,也會導致這個類變得臃腫,呼叫也不方便,這時我們可以使用乙個抽象類作為中介軟體,即介面卡,用這個抽象類實現介面,而在抽象類中所有的方法都進行置空,那麼我們在建立抽象類的繼承類,而且重寫我們需要使用的那幾個方法即可。

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

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

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...

設計模式之介面卡模式

介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...