繁体   English   中英

Java:仅打算覆盖的库方法的受保护或公共访问?

[英]Java: protected or public access for library methods that I intend to override only?

我正在编写一个框架库,其中有一些我只打算被覆盖,从不在库外调用的方法。 但是,将它们public也没有安全风险。 我有一种印象,就是要被覆盖的方法在库中声明为public ,并且仅在存在某些安全风险时才使用protected方法? 如果通过将它们公开而没有可行的安全风险,那么是否有理由选择其中一个?

安全永远不会成为问题,因为反射可以绕过程序包访问。 “保护”是一种与人类交流的方法,如果有人从类或其子类外部调用该方法,则该类并非旨在以明智的方式进行操作。

这基本上是一个风格问题。 我的经验法则是尽可能采用最严格的政策,即,相对于public更喜欢protected 如果将来您决定要公开这些方法,则可以随时将其public 但是,如果您开始将它们public然后又不得不更改其签名,那么您就有可能会破坏可能误用了它们的其他人的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM