此刻我有以下內容的包store
:我應該避免在golang中打包單身人士嗎?
package store
var (
db *Database
)
func Open(url string) error {
// open db connection
}
func FindAll(model interface{}) error {
// return all entries
}
func Close() {
// close db connection
}
這允許我使用store.FindAll
從其他包我在做main.go
後store.Open
。
但是,正如我迄今爲止所看到的,大多數包傾向於提供一個結構,您需要初始化自己。只有少數情況下使用這種全球方法。
這種方法有什麼缺點,我應該避免它?
注意,有些軟件包,如標準庫的'log'包,提供一個全球性的記錄,也全部:如果有人致電
Open
兩次應該發生什麼你可以構建額外的獨立記錄器。 (包API僅僅是對結構的封裝)。 – LinearZoetrope