簡體   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