2023年1月31日21:00:07
說實話我覺得介面卡模式和外觀模式就是乙個意思,區別就在於使用初衷。另外介面卡模式和裝飾者模式很像,根據需要自己選擇使用那一種。
介面卡模式的本質是對被適配的乙個或者多個類進行包裝以提供乙個目標格式的介面,對於呼叫者來說,被適配者的呼叫過程是透明的。(介面卡模式是為了達到對原來類的復用,但是不修改原來類的**的目的而推出的)
上面就是乙個典型的介面卡的**(雖然我寫的有點接近外觀模式,但大差不差)介面卡模式在生活中有很多例子,比如我最近買了架電子琴,電子琴的耳機插口是6.5mm的,但是普通耳機是3.5mm的,於是我買了乙個6.5到3.5的耳機轉接頭,這樣我就可以把3.5的耳機插到電子琴上了,這裡轉接頭就是介面卡。另外乙個常見的就是水果機,如果拿的是國外的貨,那麼就面臨乙個問題就是國外的電源插座和電壓與國內是存在差別的,為了手機能在國內充電,我們也需要買乙個插頭的電源介面卡。總的來說就是在乙個物件外面再包裝上一層,我們可以通過外層去操作物件,而不需要關注物件內部是怎麼被呼叫的。
外觀模式和介面卡模式很一致,只是使用的初衷是簡化介面,比如我們去浴室洗澡,我們可以把開燈,放熱水,準備毛巾等打包成乙個方法,我們呼叫介面卡的這個方法就可以完成一系列的事情。注意外觀模式和介面卡模式都可以對單個或者多個物件進行包裝。比如外觀模式,多個就是之前舉得例子,單個:我們把初始化印表機,列印內容和印表機關閉封裝成介面卡的乙個方法。介面卡模式,單個:看例子,多個:我們把服務員點單,廚師做菜,服務員送菜封裝成乙個介面卡的方法。
外觀模式和介面卡模式核心都是一樣的,我覺得沒必要細分。
介面卡模式與裝飾者模式的區別:1介面卡模式必定導致對外介面的改變,而裝飾者模式的使用初衷就是在不改變介面的前提下擴充套件類的功能。2介面卡基本上巢狀程度只有1層,只是封裝改變介面,而裝飾者模式可以巢狀多層,可以靈活使用巢狀來達到特定的目的
設計模式 介面卡與外觀模式
介面卡模式 將乙個類的介面,轉換成客戶期待的另乙個介面,介面卡讓原本介面不相容的類可以合作無間。外觀模式 提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。外觀模式白話 開啟電視,你要插電源,再按下遙控的 開 鍵,同時為了你要由音量,也要把音量鍵 開 按一...
介面卡模式與外觀模式
客戶新的需求,需要我們實現類似歐洲插座 電流介面卡 美國產筆記本插頭的東西,如下所示 使用介面卡模式充滿良好的oo設計原則 使用物件組合,以修改的介面包裝被適配者 同時被適配者的任何子類,都可以配著介面卡使用。需要注意 該模式是如何把客戶和介面繫結,而不是和實現繫結。上圖是物件介面卡,物件介面卡利用...
介面卡模式與外觀模式
定義 介面卡模式將乙個類的介面,轉換為客戶希望另乙個介面。外觀模式 外觀模式提供了乙個統一的介面,用來訪問子系統中一群介面。要點 當需要使用乙個類而其介面不符合你的需求的時候,使用介面卡。當需要簡化並統一乙個很大的介面或一群負責的介面時,使用外觀。介面卡可以改變介面以符合客戶的期望。外觀將客戶從乙個...