您是否在Java中使用默认(包)可见性?

时间:2012-12-05 15:28:51

标签: java visibility

java中的默认可见性意味着只有同一java包中的其他类才能访问它。我当然看到它的使用,并在几个场合使用过它。

另一方面,我遇到的默认可见性的90%仅来自忘记添加任何可见性关键字的开发人员。

因此,一方面,有合法用途,另一方面,它经常掩盖坏代码。您在开发团队中做了什么?

3 个答案:

答案 0 :(得分:11)

我通常会尝试让所有人从最有限的范围开始,只有在我们看到设计中有必要时才开始向外扩展。有时候,从private转移到package-private的决定也是由我们编写测试的需要驱动的,而不必沿着使用模拟框架的路线(参见Powermock)。

除此之外,我们在可变性上遵循相同的心态。一切都从final开始,只有在我们看到需要修改状态时才会删除它。

答案 1 :(得分:5)

如果我特别想要包访问,我会在方法/变量等的定义之前加上 / * package * / ,以确保人们知道我的意思,并且不是懒惰。我很少使用它。

答案 2 :(得分:4)

我鼓励人们使用我希望默认的private

不时形成,我运行代码分析,将访问修饰符减少到只需要的东西。