依赖注入 – 通过构造函数或属性设置的依赖注入?
发布时间:2020-12-14 01:37:23 所属栏目:百科 来源:网络整理
导读:我希望这不是重复。我做了一个搜索,但有很多依赖注入的帖子,我没有找到任何针在干草堆。 所以这里是我的问题。我重构一个类,并添加一个新的依赖它。类目前正在构造函数中使用其现有的依赖关系。所以为了一致性,我将参数添加到构造函数。 当然,有几个子
我希望这不是重复。我做了一个搜索,但有很多依赖注入的帖子,我没有找到任何针在干草堆。
所以这里是我的问题。我重构一个类,并添加一个新的依赖它。类目前正在构造函数中使用其现有的依赖关系。所以为了一致性,我将参数添加到构造函数。 当然,有几个子类加上甚至更多的单元测试,所以现在我正在玩的游戏改变所有的构造函数匹配,它正在采取年龄。 它让我认为使用setters属性是一个更好的方式获取依赖。我不认为注入的依赖应该是构建类的实例的接口的一部分。你添加一个依赖关系,现在所有的用户(子类和任何直接实例化的用户)突然了解它。这感觉像是封装的破裂。 但这似乎不是现有的代码在这里的模式,所以我在寻找找到什么是一般的共识是,构造函数vs属性的利弊。使用属性设置更好? 编辑:哇,很多有用的答案在很短的时间内。看起来一致的是构造函数。
嗯,这取决于:-)。
如果类无法完成其没有依赖性的工作,则将其添加到构造函数。类需要新的依赖,所以你希望你的改变打破事情。此外,创建未完全初始化的类(“两步构造”)是反模式(IMHO)。 如果类可以工作没有依赖,一个setter是好的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |