Skip to content

20210131关于golang交叉(循环)引用的问题(2)严谨的文章

zqy edited this page Jan 31, 2021 · 1 revision

超级详细的文章:

https://libuba.com/2020/11/02/golang%E5%8C%85%E5%BE%AA%E7%8E%AF%E5%BC%95%E7%94%A8%E7%9A%84%E5%87%A0%E7%A7%8D%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/

他解释了循环引用的一些底层原因:
golang为了加速编译,不允许包循环引用。通常来说,只要你的包规划得好,严格规范单向调用链(如控制层->业务层->数据层),一般不会出现包循环引用问题。当然现实业务往往不会这么理想,同层级之间的不同包经常需要互相引用,下面我就分享几种解决包循环引用的方案。

划重点单向调用链
也就是:

单项调用链原则

顾名思义,一定要时刻牢记并遵守他

Clone this wiki locally