我正在尝试应用干净的架构,除此之外,我有一个数据源层和一个存储库层。
存储库使用一个接口与底层数据源(只有一个 sql db atm)进行交互,但是数据源接口是为 sql 数据库量身定制的,如下所示:
package datasource
import "database/sql"
type Source interface {
Open() error // Open the connection
Close() // Close the connection
Exec(string, ...interface{}) error // Execute a prepared query(e.g:insert)
Query(string, ...interface{}) (*sql.Rows, error) // Retrieve rows with a prepared query
}
正如我想象的其他数据源将在稍后引入(如 nosql dbs 或外部 API ......),我如何将它们全部分组在一个通用接口下,以便存储库不需要知道源数据。
谢谢你。
PS:我知道有类似的问题,但从存储库的角度处理问题,我正在寻找数据源方面的解决方案(例如:通用接口),因为我不希望每个单独的存储库资源。
慕神8447489
米脂
随时随地看视频慕课网APP
相关分类