Javaのデフォルトの可視性は、同じJavaパッケージ内の他のクラスのみがそれにアクセスできることを意味します。私は確かにそれの使用を見て、そしてそれを何度か使用しました。
一方、私が遭遇するデフォルトの可視性の90%は、可視性キーワードを追加するのを忘れた開発者によるものです。
したがって、一方では正当な使用法があり、他方では、それはしばしば悪いコードを覆い隠します。開発チームでは何をしていますか?
Javaのデフォルトの可視性は、同じJavaパッケージ内の他のクラスのみがそれにアクセスできることを意味します。私は確かにそれの使用を見て、そしてそれを何度か使用しました。
一方、私が遭遇するデフォルトの可視性の90%は、可視性キーワードを追加するのを忘れた開発者によるものです。
したがって、一方では正当な使用法があり、他方では、それはしばしば悪いコードを覆い隠します。開発チームでは何をしていますか?
私は通常、全員に最も限られた範囲から始めてもらい、設計上必要であることがわかった場合にのみ外側に拡張し始めるようにしています。場合によっては、モック フレームワークを使用せずにテストを作成する必要があるために、 から に移行するという決定が下されることもあります ( private
Powermockを参照)。package-private
これに加えて、可変性についても同じ考え方に従います。すべてはfinal
、状態を変更する必要があると判断したときにのみ、状態を削除することから始まります。
特にパッケージへのアクセスが必要な場合は、メソッド/変数などの定義の前に/*パッケージ*/を配置して、私が実際にそれを意味し、怠惰ではないことを人々に確実に知らせます。私はめったにそれを使用しません。
private
私がデフォルトにしたいと思っていたものを使用することを人々に勧めます。
時々、アクセス修飾子を必要なものだけに減らすコード分析を実行します。