回答:
ここで2つのこと:
もちろん、ルールには常に例外がありますが、それは最初から始めるための基本です。
static
.NETのように動作する場合は、ユニットのテスト性も損なわれます。それを使用するユニットは常にそれらに依存するため、テスト中のユニットを隔離するためにそれらを偽造する方法はありません。
ここにいくつかの一般的なプログラミング原則があります:
...だけでなく:
私はJavaの専門家ではありませんが、一般的な経験則は次のとおりです。言語に精通している人に、明示的でなくても何が起きるかが明らかな場合は、暗黙的な動作を使用します。ただし、これにより誰かが間違った方向に進む可能性がある場合は、必ず明示してください。
Javaには自動プロパティがないため、必要に応じて、一般にすべてのクラスメンバーをパブリックに使用するためのget / setメソッドでプライベートにする必要があります。
ソース(Oracle Java Docs)によると、これは推奨されるアプローチです。
「特定のメンバーにとって意味のある最も限定的なアクセスレベルを使用してください。正当な理由がない限り、プライベートを使用してください。定数以外のパブリックフィールドは避けてください。パブリックフィールドは、特定の実装にリンクし、変更の柔軟性を制限する傾向がありますコード。 "
http://download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html