1 回答

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以做一個(gè)租戶界面,比如
type tenant interface{
getOrders() Orders
}
現(xiàn)在您可以聲明實(shí)現(xiàn)此接口的任意數(shù)量的租戶
package main
import (
"fmt"
)
type tenant interface {
getOrders()
}
type TenantA struct {
}
func (t TenantA) getOrders() {
fmt.Println("Tenant A")
}
var tenantMap = map[string]tenant{
"T-A": TenantA{},
}
func main() {
fmt.Println("Hello")
teneantTest := "T-A"
curTeneant, ok := tenantMap[teneantTest]
if !ok {
fmt.Println("Not Found")
return
}
curTeneant.getOrders()
}
現(xiàn)在您的所有租戶都遵循相同的界面,如果所有租戶都定義了最少的功能集,這將是編譯時(shí)可測試的
這也將導(dǎo)致更清晰的抽象
- 1 回答
- 0 關(guān)注
- 103 瀏覽
添加回答
舉報(bào)