我想將我在Golang中的配置加載器類從特定的配置文件結構轉換爲更一般的配置。本來,我所定義的結構與一組特定於程序的變量,例如:Golang接口和接收器 - 需要的建議
type WatcherConfig struct {
FileType string
Flag bool
OtherType string
ConfigPath string
}
我然後定義兩個方法用指針接收器:
func (config *WatcherConfig) LoadConfig(path string) error {}
和
func (config *WatcherConfig) Reload() error {}
我現在試圖使這個更通用,並且計劃是定義一個接口Config
並且在這個上定義LoadConfig
和Reload
方法。然後,我可以爲每個需要它的模塊創建一個struct
,並保存自己重複一個基本上打開文件,讀取JSON並將其轉儲到結構中的方法。
我試圖創建一個接口,定義這樣的方法:
type Config interface {
LoadConfig(string) error
}
func (config *Config) LoadConfig(path string) error {}
但是,這顯然是引發錯誤的Config
不是一個類型,它是一個接口。我需要爲我的班級添加更抽象的struct
嗎? 知道所有配置結構將具有ConfigPath
字段可能會有用,因爲我將此用於Reload()
配置。
我很確定我正在討論這個錯誤的方法,或者我正在嘗試做的不是一個在Go中很好地工作的模式。我真的很感激一些建議!
- 我想在Go中做什麼?
- Go是一個好主意嗎?
- 什麼是替代Go-ism?
爲什麼定義的時候你可以創建FUNC LoadConfig(路徑字符串)(配置,錯誤){}的方法? – Makpoc