-
Notifications
You must be signed in to change notification settings - Fork 0
20210204还是关于包的相互引用问题(1)
zqy edited this page Feb 4, 2021
·
1 revision
之前提到将如bytesabs100%作为adapter的子包,但是并不代表形成子母文件夹后子文件夹就可以引用母文件夹的对象了
依然需要遵循单向调用原则
后来尝试设计个与bytesabs包平级的conf包,让adapter包来配合使用、调用他们,这样一来逻辑上就清晰了,但是发现bytesabs包里还是需要用到Config这个接口,如是除了adapter包需要引用conf.Config,bytesabs包也需要引用conf.Config,于是就形成了两条调用链:
1.pkg adapter->pkg conf
2.pkg adapter->pkg bytesabs->pkg conf
问题其实是出在编程的时候进行的import操作,真正舒服,优雅,思路清晰的逻辑是,你在一个包引入另一个包,被引入的包在地位上要比引入包第一层级,而pkg bytesabs->pkg conf显然是不遵循这个规律的,最重要的是,你说他import的语法该怎么去写?
这里先说个细节,如果由main文件夹,同时文件夹内部有main.go与conf文件夹,conf文件夹下有conf.go,则main.go与conf.go是上下层关系本质上是因为两个源文件所在的文件夹是上下属关系。
找到正确的理解方式了,从go源代码里找到的,请看下一篇文章