適配器模式(Adapter)將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口千埃。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作.
① Target(目標(biāo)接口):客戶所期待的接口悉患。目標(biāo)可以是具體的或抽象的類碾褂,也可以是接口.
② Adaptee:需要適配的類或適配者類.
③ Adapter(適配器):通過包裝一個需要適配的對象,把原接口轉(zhuǎn)換成目標(biāo)接口.
核心代碼:
<pre><code>`// 適配器模式
class AdapterTarget {
func request() {
}
}
class Adapter:AdapterTarget {
lazy var adaptee:Adaptee = Adaptee()
override func request() {
adaptee.specificRequest()
}
}
class Adaptee {
func specificRequest() {
print("FlyElephant--電腦接口")
}
}`</code></pre>
核心代碼實現(xiàn)比較簡單暂殖,優(yōu)點:
① 通過適配器价匠,客戶端可以調(diào)用同一接口,因而對客戶端來說是透明的.這樣做更簡單呛每、更直接踩窖、更緊湊.
② 將目標(biāo)類和適配者類解耦,通過引入一個適配器類重用現(xiàn)有的適配者類晨横,而無需修改原有代碼.
③ 復(fù)用了已經(jīng)存在的類洋腮,解決了現(xiàn)存類和復(fù)用環(huán)境要求不一致的問題.
現(xiàn)實中的例子最典型的是電源適配器.