我正在重构一个类并向它添加一个新的依赖项。该类当前正在构造函数中获取其现有的依赖项。为了保持一致性,我将参数添加到构造函数中。
当然,还有一些子类以及更多的用于单元测试的子类,所以现在我正在玩一个游戏,要改变所有的构造函数来匹配,这花费了很长时间。
这使我认为使用 setter 属性是获得依赖关系的更好方法。我不认为注入的依赖项应该成为构造类实例的接口的一部分。您添加了一个依赖项,现在您的所有用户(子类和任何直接实例化您的人)突然都知道了它。感觉像是封装破裂。
这似乎不是现有代码的模式,所以我想找出一般的共识是什么,构造函数和属性的优缺点。使用属性设置器更好吗?