当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Spring的依赖注入是否会破坏信息隐藏?》经验,为你挑选了3个好方法。

来自C++背景我必须掌握Java世界及其框架的复杂性.看一下DI的弹簧框架,我发现我很难相信我必须制作每个将受DI公众影响的setter功能.这种要求是否违反了信息隐藏原则?

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

我在这里错过了什么?



1> duffymo..:

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


构造函数注入+1.表达依赖性更强,并消除了对"有趣"的设置者的需求
并非所有属性都可能是正确操作类所必需的.在那种情况下,我总是通过二传手注入它们

2> oxbow_lakes..:

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



3> krosenvold..:

您(可能)必须制作一个制定者,它会告知您外部的一些内部细节,但不需要制作一个吸气剂.所以你要透露一些信息,但不是太多; 除了预期目的之外,它对任何事情都没有用.

另外,我建议使用注释和@Autowired,在这种情况下,您不需要创建公共setter.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有