キーワードが同じパッケージからのフィールド/メソッドへのアクセスを許可する正当な理由はありますかprotected
(修飾子が許可しないのと同じ方法で)? Java 言語に package-private 可視性が含まれているのはなぜですか? 私の意見では、同じパッケージにあるクラス/メソッドによってフィールドを変更できるようにすることは、カプセル化の原則に反しています。コードをリファクタリングして、クラスを別のパッケージに移動したいとします。それはコードを壊すでしょう!
これらの可視性は両方とも、過去の時代遅れで準備が不十分な機能であると考えています。最近それらを使用し、同時にスパゲッティブロブを防ぐ理由はありますか?