依赖注入的公共属性或自定义初始值设定项?

时间:2014-08-06 00:40:32

标签: ios objective-c unit-testing dependency-injection

我在我的应用程序中使用依赖注入。我希望尽可能地开发我的应用程序。我的问题是,为什么,何时何地更好地使用公共属性或自定义初始化程序。我真的不知道差异,我听说大的初始化者比公共财产更好,但我真的不明白。

1 个答案:

答案 0 :(得分:1)

这个问题可能是偏离主题的,因为它是基于意见的,但正如我所看到的那样,自定义初始化程序在没有初始化程序中的所有依赖项的情况下无法运行的情况下更好,因为它阻止了对象的实例化没有所有的依赖。

如果需要在对象的生命周期中更改依赖关系,则可以通过属性公开依赖关系。

如果属性是专门使用的,那么你需要首先实例化对象,然后填充所有的依赖项,然后让对象尽可能优雅地处理缺少的依赖项。

如果初始化程序与属性组合在一起,那么您可以检测到在属性设置器中分配nil依赖项的尝试并做出相应的反应,而不是在每次使用依赖项之前检查它。