路人战队|Facebook 在 Golang 依赖注入的实现( 三 )


但是由于Golang本身的语言设计 ,facebookgo/inject 也会有一些缺陷和短板:

  1. 所有需要注入的字段都需要是 public 的 。 这也是 Golang 的限制 , 不能对私有属性进行赋值 。 所以只能对public的字段进行注入 。 但这样就会把代码稍显的不那么优雅 , 毕竟很多变量我们其实并不想 public 。
  2. 只能进行属性赋值 , 不能执行初始化函数 。 facebookgo/inject只会帮你注入好对象 , 把各个属性赋值好 。 但很多时候 , 我们往往需要在对象赋值完成后 , 再进行其他一些动作 。 但对于这个需求场景 , facebookgo/inject并不能很好的支持 。
【路人战队|Facebook 在 Golang 依赖注入的实现】这两个问题的原因总结归纳为:Golang没有构造函数……


推荐阅读