Golang設計模式 介面卡模式

2021-10-19 12:44:30 字數 1732 閱讀 2458

介面卡模式包含如下角色:

target:目標抽象類

adapter:介面卡類

adaptee:適配者類

client:客戶類

物件介面卡:

類介面卡:

在以下情況下可以使用介面卡模式:

系統需要使用現有的類,而這些類的介面不符合系統的需要。

想要建立乙個可以重複使用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作。

package main

import

("fmt"

"log"

)//物件介面卡

type kafka struct

func

(k *kafka)

sendmsg()

type etcd struct

func

(k *etcd)

sendmsg()

type sendmsg inte***ce

type adapter struct

func

(a *adapter)

sendmsg()

error

return

nil}

func

fsendmsg

(msgtype int

)error

, etcd: etcd,}

return adapter.

sendmsg()

}func

main()

err =

fsendmsg(2

)if err !=

nil}

package main

import

("fmt"

"log"

)type sendmsgtokafka inte***ce

type sendmsgtoetcd inte***ce

//類介面卡

type kafka struct

func

(k *kafka)

sendmsgtokafka()

type etcd struct

func

(k *etcd)

sendmsgtoetcd()

// 客戶端想要的介面

type sendmsg inte***ce

type adapter struct

func

(a *adapter)

sendmsg()

error

return

nil}

func

fsendmsg

(msgtype int

)error

return adapter.

sendmsg()

}func

main()

err =

fsendmsg(2

)if err !=

nil}

設計模式golang 介面卡模式

將乙個介面轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。1.源介面。2.適配目的介面。3.適配結構體。人類能說話,動物也能發聲叫,人類能學動物叫,需要乙個轉換器把人類的叫聲轉換為動物的叫聲。適配目的介面 type animalsound inte ce 源結構體 type pe...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...