適配器模式: 將一個接口轉(zhuǎn)換成客戶希望的另一個接口,使接口不兼容的那些類可以一起工作,其別名為包裝類(Wrapper),適配器模式既可以作為類結(jié)構(gòu)型模式,也可以作為對象結(jié)構(gòu)型模式
創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元仁壽做網(wǎng)站,已為上家服務(wù),為仁壽各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792類似封裝(設(shè)計模式使用了大量的繼承、封裝、閉包、高階函數(shù)等方法)
在適配器模式中,通過增加一個新的適配器類來解決接口不兼容的問題,使得沒有任何關(guān)系的類可以協(xié)同工作。根據(jù)適配器類與適配者類的關(guān)系不同,適配器模式可分為對象適配器模式和類適配器模式兩種。在對象適配器模式中,適配器與適配者之間是關(guān)聯(lián)關(guān)系;在類適配器模式中,適配器與適配者之間是繼承(或?qū)崿F(xiàn))關(guān)系
對象適配器模式包含3個角色
假設(shè)我們現(xiàn)在只有type-C的充電口,但是我們需要給只接受USB充電口的設(shè)備充電,這個時候我們就需要一個充電適配器來進(jìn)行充電接口的轉(zhuǎn)換
package adapter
import "fmt"
// USBTarget 目標(biāo)接口
type USBTarget interface {USBCharge()
}
// Adapter 適配器
type Adapter struct {Adaptee TypeCAdaptee
}
func NewAdapter(adaptee TypeCAdaptee) *Adapter {return &Adapter{Adaptee: adaptee,
}
}
func (a *Adapter) USBCharge() {fmt.Println("充電接口轉(zhuǎn)換->USB")
a.Adaptee.TypeCCharge()
}
// TypeCAdaptee 適配者
type TypeCAdaptee struct {}
func (t *TypeCAdaptee) TypeCCharge() {fmt.Println("開始充電")
}
這里我們定義了一個目標(biāo)接口
// USBTarget 目標(biāo)接口
type USBTarget interface {USBCharge()
}
還有一個Type-C的充電接口,這個Type-C接口是沒辦法進(jìn)行USB充電的
// TypeCAdaptee 被適配者
type TypeCAdaptee struct {}
func (t *TypeCAdaptee) TypeCCharge() {fmt.Println("開始充電")
}
如果我們手里只有Type-C的接口,是沒辦法使用USB的充電的,所以這里還需要有一個充電適配器
// Adapter 適配器
type Adapter struct {Adaptee TypeCAdaptee
}
func NewAdapter(adaptee TypeCAdaptee) *Adapter {return &Adapter{ Adaptee: adaptee,
}
}
func (a *Adapter) USBCharge() {fmt.Println("充電接口轉(zhuǎn)換->USB")
a.Adaptee.TypeCCharge()
}
這個充電適配器實現(xiàn)了USB充電的方法,在內(nèi)部將充電的方法進(jìn)行了轉(zhuǎn)換,最后完成了USB的充電
測試package adapter
import "testing"
func TestAdapter_ChargeAdapter(t *testing.T) {typeCAdaptee := TypeCAdaptee{}
adapter := NewAdapter(typeCAdaptee)
adapter.USBCharge()
}
//
// === RUN TestAdapter_ChargeAdapter
// 充電接口轉(zhuǎn)換,USB
// 充電
// --- PASS: TestAdapter_ChargeAdapter (0.00s)
// PASS
總結(jié)
優(yōu)點你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧