java中的默认可见性意味着只有同一java包中的其他类才能访问它。我当然看到它的使用,并在几个场合使用过它。
另一方面,我遇到的默认可见性的90%仅来自忘记添加任何可见性关键字的开发人员。
因此,一方面,有合法用途,另一方面,它经常掩盖坏代码。您在开发团队中做了什么?
答案 0 :(得分:11)
我通常会尝试让所有人从最有限的范围开始,只有在我们看到设计中有必要时才开始向外扩展。有时候,从private
转移到package-private
的决定也是由我们编写测试的需要驱动的,而不必沿着使用模拟框架的路线(参见Powermock)。
除此之外,我们在可变性上遵循相同的心态。一切都从final
开始,只有在我们看到需要修改状态时才会删除它。
答案 1 :(得分:5)
如果我特别想要包访问,我会在方法/变量等的定义之前加上 / * package * / ,以确保人们知道我的意思,并且不是懒惰。我很少使用它。
答案 2 :(得分:4)
我鼓励人们使用我希望默认的private
。
不时形成,我运行代码分析,将访问修饰符减少到只需要的东西。