前言
在解決了物件的建立問題之後,物件的組成以及物件之間的依賴關係就成了開發人員關注的焦點,因為如何設計物件的結構、繼承和依賴關係會影響到後續程式的維護性、**的健壯性、耦合性等。
理解:介面卡結構:目標+介面卡+被適配者(客戶端)(類,介面,物件)
目標和被適配者是解耦的
介面卡本質:就是轉換器,將某個類的介面轉換為客戶端期望的另乙個介面,
介面的形參和返回值其實就是轉換器的入口和插口
人工客服就是顧客傳遞資訊給公司的介面卡
(1).類介面卡:手機充電例子
被適配者依賴介面卡介面
介面卡實現介面卡介面,繼承被適配者,適配方法返回值給目標類
(繼承不解耦,這裡使用了並不好,使用被適配者的output220()方法,,又暴露了介面卡類)
客戶端依賴被適配者和介面卡
(2).物件介面卡模式
物件介面卡即給目標物件做適配函式
手機的手電電壓固定為5v,現在在中國電壓為220v
要充電就需要乙個充電介面卡,我們可以在手機類或者中國電壓類中寫轉化方法解決
手機的手電電壓固定為5v,現在去美國電壓變為110v
若原來的適配方法在中國的電壓類中,不能重用了,新寫的美國電壓類又要寫適配方法
若原來的適配方法在手機類中,要到類中去找到適配方法所有相關來修改
考慮到變化的是這種適配方法,所以給手機做適配介面,適配介面的實現類聚合中國電壓
如果新到泰國,原來已有泰國電壓類,只需要寫乙個泰國電壓適配類,原有類不變
若新手機電壓為6v,則。。。。
這個例子種adapter類不再繼承被適配者,而是聚合被適配者,繼承被解耦
設計模式 介面卡Adapter模式(結構性)
介面卡 adapter 模式主要應用於希望復用一些現存的類,但是介面又與新的復用環境要求不一致的情況。該模式表面看起來有點 多餘 適配層實現的功能與現有的類相同,實際上,由於軟體開發維護處於不斷維護更新過程中,極大可能因為不同人員 不同產品導致功能類似而介面不同的情況,因此使用介面卡算是 無奈之舉 ...
設計模式1 介面卡模式
舉個栗子,我的是安卓手機,室友的是蘋果手機,我的安卓機子只能用我的安卓資料線來充電,而不能使用室友的蘋果資料線,但是我想借助某種工具 不知道有沒有這種東東.讓我的安卓手機可以用室友的蘋果資料線來充電,可以幫我們達到這個目的的工具就是介面卡。通俗來說,介面卡就是把原來不匹配的東西變成匹配的東西的乙個中...
介面卡設計模式1
面試 你懂什麼是分布式系統嗎?redis分布式鎖都不會?1 定義 是把乙個類的介面變換成客戶端所期待的另外一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。2 分類 a 類的介面卡模式 b 物件介面卡模式 3 下面詳細分析類的介面卡模式 a 涉及到的角色 目標 target 角...