所以我有這個匯入周期要解決,我的項??目結構基本上是這樣的:
model.go -> procedure.go -> function.go
在我的函式中,我需要模型,我使用介面來處理它。目前我的代碼基本上是這樣的:
type imodel interface {
foo()
}
type model struct {
}
func (m *model) run() {
proc := &procedure{}
proc.run(m)
}
func (m *model) foo() {
//bla bla
}
type procedure struct {
}
func (p *procedure) run(model imodel) {
funct := &function{}
funct.run(model)
}
type function struct {
}
func (f *function) run(model imodel) {
model.foo()
}
我的問題是我應該使用介面來傳遞我的模型像這樣的每個類還是有任何其他解決方法?
uj5u.com熱心網友回復:
我會把所有這些放在同一個包里。根據情況,我可能會將它們放在同一個包中的不同檔案中。
此外,您似乎沒有 export imodel,因此它將是包內部的,除非您有多個具體實作,否則您不需要介面。那么,“imodel”是一個不太理想的名字,介面應該被命名,model并且實作介面的每個具體型別都應該以其模型命名。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/371077.html
下一篇:MongoDB不保存時間戳
