一,什麼是 介面卡模式
adapter 模式 也叫介面卡模式, 是構造型模式之一,通過adapter 模式可以改變已有類(或外部類) 的介面形式 。
二,介面卡模式的定義與特點以及結構
定義:將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。介面卡模式分為
類結構型模式
和物件結構型模式
兩種,前者類之間的耦合度比後者高,且要求程式設計師了解現有元件庫中的相關元件的內部結構,所以應用相對較少些。
優點:缺點:對類介面卡來說,更換介面卡的實現過程比較複雜。
介面卡模式(adapter)包含以下主要角色。
目標(target)介面:當前系統業務所期待的介面,它可以是抽象類或介面。
適配者(adaptee)類:它是被訪問和適配的現存元件庫中的元件介面。
介面卡(adapter)類:它是乙個轉換器,通過繼承或引用適配者的物件,把適配者介面轉換成目標介面,讓客戶按目標介面的格式訪問適配者。
類介面卡模式 通過繼承實現adapter
物件介面卡模式,通過委讓實現adapter
三,**實現
類介面卡:
目標(target)介面:當前系統業務所期待的介面,它可以是抽象類或介面。
將使用的電源抽象
public inte***ce current
適配者(adaptee)類:它是被訪問和適配的現存元件庫中的元件介面。
這裡是筆記本適配者
public class adaptee
}
介面卡(adapter)類:它是乙個轉換器,通過繼承或引用適配者的物件,把適配者介面轉換成目標介面,讓客戶按目標介面的格式訪問適配者。
public class adapter extends adaptee implements current
}
測試:
物件介面卡模式,通過委讓實現adapter
目標(target)介面:當前系統業務所期待的介面,它可以是抽象類或介面。
將使用的電源抽象
public inte***ce current
適配者(adaptee)類:它是被訪問和適配的現存元件庫中的元件介面。
這裡是適配者 提供各種電壓
public class adaptee
}
介面卡(adapter)類:它是乙個轉換器,通過繼承或引用適配者的物件,把適配者介面轉換成目標介面,讓客戶按目標介面的格式訪問適配者。
public class adapter implements current
@override
public void voltage()
}
測試:
四,應用場景
五,模式的擴充套件
介面卡模式(adapter)可擴充套件為雙向介面卡模式,雙向介面卡類既可以把適配者介面轉換成目標介面,也可以把目標介面轉換成適配者介面
目標介面
/**
* target(目標) 發動機
*/public inte***ce motor
適配者介面
/**
* @classname engine
* @description 引擎(適配者介面)
* @version 1.0
**/public inte***ce engine
}
適配者實現
/**
* @classname electricmotor
* @description (適配者實現)
* @version 1.0
**/public class electricengine implements engine
}
雙向介面卡
public class adapter implements motor,engine
@override
public void drive()
@override
public void engine()
}
測試
23種設計模式之介面卡模式
二 實現方式 三 總結 下文如有錯漏之處,敬請指正 介面卡模式是將乙個類介面轉換為客戶端期望的另乙個介面,使得原本因介面不相容的類能協同工作。即讓不相關的兩個類產生關聯並進行工作。介面卡模式的主要角色 缺點 物件介面卡模式 adapter類聚合adaptee物件並實現target介面 優點 缺點 預...
23種設計模式 介面卡模式
1 概念 定義 介面卡模式,是指將乙個類的介面轉換成客戶期望的另外乙個介面,是原本的介面不相容的類,可以一起工作。它是結構型模式的一種。建立型模式 結構型模式 行為模式 單例模式 模式 模板方法模式 原型模式 介面卡模式 策略模式 工廠方法模式 橋接模式 命令模式 抽象工廠模式 裝飾模式 責任鏈模式...
23種設計模式之介面卡模式(Adapter)
介面卡模式將乙個介面轉換成客戶希望的另乙個介面,從而使介面不相容的那些類可以一起工作。介面卡模式既可以作為類結構型模式,也可以作為物件結構型模式。在類介面卡模式中,通過使用乙個具體類將適配者適配到目標介面中 在物件介面卡模式中,乙個介面卡可以將多個不同的適配者適配到同乙個目標。圓形類 public ...