Spring的依赖注入不会破坏信息的隐藏?

我来自C++背景,我必须掌握Java世界及其框架的复杂性。看看DI的弹簧框架,我发现很难相信我必须使DI公开的每个设置器函数。这个要求难道没有打破信息隐藏的原则吗?

当然,我希望spring能够设置我的课程的一些私人部分,但我当然不希望每个客户端课程都能够做同样的事情。

我在这里错过了什么?


答案 1

我同意你的观点 - 这就是为什么我更喜欢构造函数注入。


答案 2

如果对接口进行编码,则只需在实现上公开 setter。当您将接口注入系统的其他部分时,它们无法访问对象的实现详细信息或状态。


推荐