最近在学习Java,突然想到了一个概念package-private
类,如果我们不指定任何内容,这就是默认值。但后来我意识到:
我很少看到使用包私有类。这样做有什么原因吗?例如,它有严重的缺点,它是多余的,或者只是我读得不够多?是否有强有力的论据支持/反对其使用?
如果它在大多数情况下确实没有用,为什么它会成为默认值?
现实世界中什么情况下我们应该使用package-private?也就是说,什么时候它会变得不可替代?
换句话说,默认的 package-private 修饰符的主要优点和缺点是什么?
简短的回答是——这是一种稍微更广泛的私人形式。
我假设您熟悉之间的区别public
and private
,以及为什么创建方法和变量通常是一种好的做法private
如果它们仅在相关类内部使用。
好吧,作为其扩展 - 如果您正在考虑以模块化方式创建软件,您可能会考虑为您的应用程序提供一个公共接口module,其中将有多个类相互协作。在这种情况下,创建方法是非常有意义的public
消费者是否会打电话给他们;private
如果它们是类的内部;和package private
如果它们用于在该模块中的类之间进行调用,即它是模块的实现细节(如公共调用者所见)但跨越多个类。
这在实践中很少使用,因为事实证明包系统对于这类事情并不是那么有用。您必须将给定模块的所有类转储到完全相同的包中,这对于任何不平凡的事情来说都会变得有点笨拙。所以这个想法很棒——让一个方法只能被少数“附近”的类访问,作为一个稍微更宽的类private
- 但是对如何定义该组类的限制意味着它很少被使用/有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)