2 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
一般來(lái)說(shuō); 不要迷失在構(gòu)建 Go 應(yīng)用程序的模式和協(xié)議中。該語(yǔ)言使其易于表達(dá)和直截了當(dāng)。大多數(shù)情況下,定義可靠的接口使一切都足夠靈活。
不過(guò),這里有一個(gè) Go 中策略模式的例子:
為策略的行為定義一個(gè)接口:
type PackageHandlingStrategy interface {
DoThis()
DoThat()
}
實(shí)施該策略:
type SomePackageHandlingStrategy struct {
// ...
}
func (s *SomePackageHandlingStrategy) DoThis() {
// ...
}
func (s *SomePackageHandlingStrategy) DoThat() {
// ...
}
然后,要么嵌入......
type PackageWorker struct {
SomePackageHandlingStrategy
}
func (w *PackageWorker) Work() {
w.DoThis()
w.DoThat()
}
……或者通過(guò)策略……
type PackageWorker struct {}
func (w *PackageWorker) Work(s PackageHandlingStrategy) {
s.DoThis()
s.DoThat()
}
……給你的工人。
- 2 回答
- 0 關(guān)注
- 199 瀏覽
添加回答
舉報(bào)