静的にネストされたプライベートクラスをJavaで使用している場合は、直接フィールドアクセスではなくゲッターとセッターを使用することをお勧めしますか?プライベート静的内部クラスにはカプセル化が推奨されていますか?
例。直接のフィールドアクセス:カプセル化対
public class Application {
private List<MyInnerClass> myInnerClassList;
// ...
public void foo() {
MyInnerClass inner = new MyInnerClass();
inner.bar = 50;
myInnerClassList.add(inner);
}
private static class MyInnerClass {
private int bar;
}
}
:
public class Application {
private List<MyInnerClass> myInnerClassList;
// ...
public void foo() {
MyInnerClass inner = new MyInnerClass();
inner.setBar(50);
myInnerClassList.add(inner);
}
private static class MyInnerClass {
private int bar;
public int getBar() {
return bar;
}
public void setBar(int bar) {
this.bar = bar;
}
}
}
カプセル化は通常、クラスを独立させておく(たとえば、 'bar'の割り当て方法を変更したい場合など)。しかし、あなたが 'MyInnerClass'で何をしたいかによっても変わります。 – m0skit0
他の誰もそれを含む外部クラスよりもその内部クラスにアクセスできない場合は、getterとsetterを使用する必要が生じた場合、それをリファクタリングするのは比較的簡単です。だから私は単純な変数を使用します。 –