先總結一下整個過程的感想:
感覺在網上找了很多資料,大部分大牛們把這個設計模式解釋的很仔細,但是用詞實在過於專業,很難讓初學者讀懂,自己找了乙個比較恰當的例子寫了一遍,對這個設計模式有了一定的認識,希望這種解釋可以得到認可。
其實總結一下介面卡模式的最終目的:在乙個沒有實現某個介面的類,想在這個介面中規定的方法中實現這個類想要執行的方法等。(或者說這個類實現了另乙個介面,在這個類中實現了該介面的方法,但是想在另外乙個介面定義的方法中執行本類中實現另外乙個類的方法),這時介面卡模式就誕生了。
但是這麼做事為什麼呢?我們完全可以在乙個框架或者專案中,有兩個介面a和b,在a介面中有方法a,在介面b中有方法b,可以乙個類實現兩個介面,實現方法a,方法b,並且在方法a中呼叫方法b。這樣就做到了上述的概念,但是再仔細想一想,這樣這個類就受到了限制,他必須實現兩個介面,我們需要在只實現乙個介面的環境下達到上述的概念話,還是需要介面卡模式的作用。這樣感覺框架的靈活性更強,結構更好。
下面我來舉例說明介面卡模式大致的用法:
拿大家現實生活中很常用的兩個東西來舉例,大家都知道台式電腦的滑鼠和鍵盤吧,假如我現在買了乙個滑鼠和乙個鍵盤, 滑鼠的是usb介面,鍵盤確實較老的ps2介面,但是我現在想在我的筆記本上利用這個滑鼠和鍵盤,筆記本上面只有usb介面,那麼我怎麼才能使用我的鍵盤呢?我需要再買一條ps2轉usb的適配線,就能成功的在我的筆記本上面是用鍵盤。
我們用**來實現上述的例子:
首先我們筆記本上面有乙個usb介面
public
inte***ce usb
我們的滑鼠是usb介面的線,可以插在usb介面上面
public
class
usbimpl
implements
usb//此方法就像usb線上的usb插頭
public
void
usbconnection()
}
我們有乙個ps2介面的鍵盤,他只能插在ps2介面上面:
ps2介面
```
public
inte***ce
ps2
ps2介面的鍵盤
public
class
ps2impl
implements
ps2//此方法就像鍵盤上面的ps2插頭
public
void
ps2connection()
}
下面我們要做的就是新增乙個介面卡,讓我們的ps2介面的鍵盤轉換成usb介面,可以插在我們的筆記本上面:
首先這個介面卡的終極目的是要可以插入usb介面,所我們讓這個介面卡實現usb介面
public
class
ptouadapter
implements
usb public
ptouadapter(ps2 ps2)
實現了usb介面我們就要做乙個usb的插頭,並且在這個插頭的另一邊我們接上ps2的插頭
public
void
usbconnection()
public
class test
}
此時輸出結果為,用ps2介面插入
這樣,我們就利用了介面卡將鍵盤插入到筆記本上面,就可以同時使用了。
所以個人感覺介面卡的用途總結來說,就是在不破壞框架結構的同時,假如框架更新了乙個新的介面,新的介面利用老介面的規定,我們就可以利用介面卡模式來達到目的。
Java設計模式之介面卡模式
1 使用場景 介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面。以消除由於介面的不匹配所造成類的相容性問題。介面卡模式主要有類的介面卡模式 物件的介面卡模式兩種。2 兩種介面卡模式介紹 模式所涉及的角色有 目標 target 角色 這就是所期待得到的介面。源 adapee 角色 現在需要適配的...
Java設計模式之介面卡模式
介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。介面卡模式有兩種 類介面卡和物件介面卡 二者在實現上有些許區別,作用一樣。1 類介面卡模式 原理 通過繼承來實現介面卡功能。當我們要訪問的介面a中沒有我們想要的方法...
Java設計模式之介面卡模式
介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。介面卡模式有兩種 類介面卡和物件介面卡 二者在實現上有些許區別,作用一樣。1 類介面卡模式 原理 通過繼承來實現介面卡功能。當我們要訪問的介面a中沒有我們想要的方法...