首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java字段限定符最佳实践

java字段限定符最佳实践
EN

Stack Overflow用户
提问于 2016-02-08 08:01:19
回答 2查看 580关注 0票数 0

在私有、受保护、私有或默认之间使用适当的限定符是一种良好的做法。但是,是否还有其他原因,如性能或JVM优化,默认使用的是私有的?作为一个例子

代码语言:javascript
运行
复制
public class Class1{
    Class2 class2;
}

变量class2可能是私有的。

另外,如果变量是自动生成的或由DI框架注入的。框架调用field.setAccessible(true)。这对性能或优化有什么影响吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-08 12:12:53

我想我现在明白提出这个问题的动机了。

在普通Java中对变量使用正确的访问修饰符的原因是很清楚的。基本上,它都是关于模块化,封装,避免不必要的/有害的耦合等。

那春天呢?

的确,Spring可以绕过正常的访问规则,并允许您注入private变量。但是,据我所知,您必须使用@autowire或类似的方法对您的私有字段进行审慎的注释,这样才会发生这种情况。实际上,Spring遵循的是通过注释在源代码中显式声明的“指令”。Spring基于XML的布线不会让您将值注入私有字段或使用私有设置器。

有鉴于此,关于Spring允许您中断私有封装的论点是.虽然严格来说是真的..。最终自私自利。当然你能做到的。但你必须明明白白的故意的.是故意的。只有当物体被连接时才会发生。

相反,如果您对修饰符草率,并将每个实例变量声明为public或package私有,那么您将打开各种懒散的、考虑不充分的、甚至意外中断封装的可能性。而且,即使您(原始作者)是纪律严明的,下一个阅读/维护您的代码的人也不能确定您是否受到了约束。他必须检查..。

那么,你是如何“强迫”别人听话的呢?

最好是说服而不是强制,但强迫人们编写体面代码的方法是让项目经理/质量经理采用编码标准,并坚持遵循编码标准。(但如果你的管理层不理解劣质的长期成本,那么说起来容易做起来难。)

我们制定这些令人讨厌的编码标准的真正原因是为了能够维护代码.而不是写它的人。一个好的IT经理会理解这一点的。一个好的首相会理解这一点的。一个好的程序员会理解这一点。

票数 2
EN

Stack Overflow用户

发布于 2016-02-08 08:07:17

如果它不打算被任何其他应用程序使用,那么就让它成为私有的。关键是,其他开发人员无法理解您的想法。如果它不是私有的,那么他们会认为,它是用来在课堂之外使用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35264810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档