我想确保我的Go包使用"dal"包提供的var实例,并且不会意外地直接导入和使用db访问包.
我想我可以在源代码上进行regexp搜索,但我想知道是否有办法通过标准的Go测试确保规则?
只是想知道我要做什么:
接口包:
package dal
type UserDal interface {
GetUser(id int) User
}
Run Code Online (Sandbox Code Playgroud)
实施包:
package dal_db_specific
import (
"some_db"
"dal"
)
type UserDalDbSpecific struct {
}
func (_ UserDalDbSpecific) GetUser(id int) User {
some_db.executeQuery(...)
...
return user
}
register_dal() {
dal.UserDal = UserDalDbSpecific{}
}
Run Code Online (Sandbox Code Playgroud)
用户代码包:
import (
"dal"
"some_db" <-- Fail here!
)
func someFunc() {
user := dal.User.GetUser(1) // Right way
some_db.DoSomething() <-- Fail here!
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49 次 |
最近记录: |