设计模式--适配器(Adapter)模式
生活随笔
收集整理的這篇文章主要介紹了
设计模式--适配器(Adapter)模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
模式定義
將一個類的接口轉(zhuǎn)換成客戶希望的另一個接口,適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作
類圖
應用場景
1.當你希望使用某些現(xiàn)有類,但其接口與你的其他代碼不兼容時;
2.當你希望重用幾個現(xiàn)有的子類,這些子類缺少一些不能添加到父類中的公共功能時;
優(yōu)點
1.符合單一職責原則;
2.符合開閉原則
要點總結(jié)
- Adapter模式主要應用于“希望復用一些現(xiàn)存的類,但是接口又與復用環(huán)境要求不一致的情況”,在遺留代碼復用、類庫遷移等方面非常有用
- GoF 23定義了兩種Adapter模式的實現(xiàn)結(jié)構(gòu),對象適配器和類適配器,但類適配器采用“多繼承”的實現(xiàn)方式,一般不推薦使用,對象適配器采用“對象組合”的方式,更符合松耦合精神
Go語言代碼實現(xiàn)
工程目錄
adapter.go
package Adapterimport "fmt"//適配的目標接口 type Target interface {Request() }//被適配的接口 type Adaptee struct {}//實際函數(shù) func (a *Adaptee) SpecficRequest() {fmt.Println("SpecficRequest") }type Adapter struct {*Adaptee } func (a *Adapter) Request() {a.SpecficRequest() }adapter_test.go
package Adapterimport ("testing" )func TestAdapter_Request(t *testing.T) {adaper := Adapter{} //適配器adaper.Request() }總結(jié)
以上是生活随笔為你收集整理的设计模式--适配器(Adapter)模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式--代理(Proxy)模式
- 下一篇: Kubernetes通过containe