將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。
1.target目標角色
該角色定義把其他類轉換為何種介面,也就是我們的期望介面。
2.adapter源角色
你想把誰轉換成目標角色,這個」誰」就是源角色,它是已經存在的、執行良好的類或物件,經過介面卡角色的包裝,它會成為乙個嶄新、靚麗的角色。
3.adapter介面卡角色
介面卡模式的核心角色,其他兩個角色都是已經存在的角色,而介面卡角色是需要新建立的,它的職責非常簡單:把源角色轉換為目標角色,怎麼轉換?通過繼承或是類關聯的方式。
介面卡應用的場景只要記住一點:
你有動機修改乙個已經投產中的介面時,介面卡模式可能是最適合你的模式。
比如系統擴充套件了,需要使用乙個已有或新建立的類,但這個類又不符合系統的介面?這時使用介面卡模式就能解決這個問題。
介面卡模式最好在詳細設計階段不要考慮它,它不是為了解決還處在開發階段的問題,而是解決正在服役的專案問題,沒有乙個系統分析師會在做詳細設計的時候考慮使用介面卡模式。
著重提醒:專案一定要遵守依賴倒置原則和黎克特制替換原則,否則即使在適合使用介面卡的場合下,也會帶來非常大的改造。
介面卡模式是乙個補償模式,或者說是乙個」補救」模式,通常用來解決介面不相容的問題,在百分之百的完美設計中是不可能使用到的。但是實際中是不可能出現這樣的設計。
不管系統設計得多麼完美,都無法逃避新業務的發生,技術只是乙個工具而已,是因為它推動了其他行業的進步和發展而具有價值,通俗地說,技術是為業務服務的,因此業務在日新月異的同時,也對技術提出了同樣的要求,在這種要求下,就需要我們有一種或一些這樣的補救模式誕生,使用這些補救模式可以保證我們的系統在生命週期內能夠穩定、可靠、健壯的執行,而介面卡模式就是這樣的乙個」救世主」,它在需求巨變、業務飛速而導致你極度鬱悶、煩躁、崩潰的時候橫空出世,它通過把非本系統介面的物件包裝成本系統可以接受的物件,從而簡化了系統大規模變更風險的存在。
**例子:
《設計模式之禪》 介面卡模式
介面卡模式 定義 將乙個類的介面變換客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作 介面卡模式又稱為變壓器模式,也叫做包裝模式,裝飾模式也是包裝模式的一種 簡單來說,介面卡模式就是把乙個介面或類轉換成其他的介面或類 介面卡模式有三個角色 1.target目標角...
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...
設計模式之 介面卡模式
1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...