引用至扔物线:
- 是否依赖注入的关键在于「初始化工作由谁执行」,交给别人执行初始化的才叫依赖注入;但其实「由谁执行」依然不够精确,确切说应该是「初始化工作由谁决定」,一般来说,「决定」和「执行」肯定是一个类的,但 ButterKnife 有点特殊:它是类自己来决定( @Inject(R.id.text) 对吧?),但执行却由外部来执行(ButterKnife 是初始化的执行者)。所以 ButterKnife 只是一个刽子手而已,决定者仍然是类自己。所以 ButterKnife 不是依赖注入。
- 知道怎么判断「是不是依赖注入」的作用在于,你以后写程序的时候,对于程序结构和设计的判断可以更加清晰。