客戶新的需求,需要我們實現類似歐洲插座 + 電流介面卡 + 美國產筆記本插頭的東西,如下所示:
使用介面卡模式充滿良好的oo設計原則:使用物件組合,以修改的介面包裝被適配者;同時被適配者的任何子類,都可以配著介面卡使用。需要注意:該模式是如何把客戶和介面繫結,而不是和實現繫結。
上圖是物件介面卡,物件介面卡利用物件組合實現適配,下面是類介面卡,類介面卡繼承被適配者和目標類
讓我們來看看您的家庭影院:假如要看電影,則需要開啟爆公尺花機、開始爆公尺花、燈光調暗、螢幕放下、設定投影機寬屏模式、開啟功效、設定為***,調整成環繞立體聲等等,需要子系統內各個裝置的多種操作,如果每個裝置代表乙個類,將會導致需要做很多任務作後電影才可看。
外觀模式沒有「封裝」子系統的類,外觀只提供簡化的介面,如果客戶有需要,仍可直接使用子系統的類;同時外觀不只是簡化了介面,也將客戶從元件的子系統中解耦。
外觀和介面卡可以包裝很多類,但是外觀的意圖是為了簡化介面,而介面卡的意圖是將介面轉換成不同介面。
1、就任何物件而言,在該物件的方法內,我們只應該呼叫屬於以下範圍的方法:
(1)、該物件本身;
(2)、被當作方法的引數而傳遞進來的物件
(3)、此方法所建立或例項化的任何物件
(4)、物件的任何元件
(2)和(3)表明如果物件是呼叫其他的方法的返回結果,不要呼叫該物件的方法。
介面卡模式與外觀模式
定義 介面卡模式將乙個類的介面,轉換為客戶希望另乙個介面。外觀模式 外觀模式提供了乙個統一的介面,用來訪問子系統中一群介面。要點 當需要使用乙個類而其介面不符合你的需求的時候,使用介面卡。當需要簡化並統一乙個很大的介面或一群負責的介面時,使用外觀。介面卡可以改變介面以符合客戶的期望。外觀將客戶從乙個...
介面卡模式 外觀模式
介面卡模式在實際中用的比較多 其實設計模式的思想在平時寫 中都能體現出來 比如在要實現乙個功能的時候需要去呼叫別人寫的介面。但是,這裡往往就會出現問題,因為別人的介面都是他們根據自己的情況設計出來的。這個時候就需要介面卡模式了。我們寫乙個自己的物件和介面,在介面中呼叫他們的介面把資料取回來,把自己的...
設計模式 介面卡與外觀模式
介面卡模式 將乙個類的介面,轉換成客戶期待的另乙個介面,介面卡讓原本介面不相容的類可以合作無間。外觀模式 提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。外觀模式白話 開啟電視,你要插電源,再按下遙控的 開 鍵,同時為了你要由音量,也要把音量鍵 開 按一...