我应该使用DI与RoboGuice注入所有东西吗?

时间:2013-11-24 14:10:37

标签: java android dependency-injection roboguice

我目前正在使用RoboGuice开发一些应用。我的问题是:我应该真的注射外翻吗?我创建的每个班级都应该有自己的合同界面吗?

在我的一个类“BatteryStatusUtil”的命名界面出现麻烦之后,这个问题浮现在我的脑海中,该类返回有关电池电量的信息,以及类似的内容。我读过某个地方“如果你不能为你的界面想出名字,你可能不需要界面”

如果我使用依赖注入太多,请纠正我,或者在我没有ma接口的“更通用”名称时给我一些关于命名我的接口的提示(比如类FastCar和接口{{1} })

1 个答案:

答案 0 :(得分:0)

  

我应该真的注射外翻吗?

没有。绝对不。从依赖注入的角度来看,有两种类型:newables and injectables

  

如果你不能想到你的界面的名字,你可能不需要界面

听起来有点像Reused Abstraction Principle,虽然我不确定你的报价来自哪里。但我想重新说一下:

  

如果你不能想到你的界面的名字,你可能不得不重新考虑你的抽象。

例如,如果想出一个名字很难,那么您可能违反了SOLID原则。

尽管DI本身并不会强迫您使用接口,但它是保持代码可测试性的有效方法。您的BatteryStatusUtil可能就是一个很好的例子,因为这个类可能会直接挂钩到您的OS API中,并且能够测试BatteryStatusUtil的任何消费者,您将不得不模拟该实用程序类,因为您没有不希望您的单元测试依赖于您的操作系统,否则很难以自动方式模拟电池状态。