Java クラスでは、getter と setter を使用してメンバー フィールドにアクセスするのは良い習慣ですか、それとも悪い習慣ですか?
たとえば、どちらが良いですか:
public Order {
private Agreement agreement;
public Agreement getAgreement() {
return agreement;
}
public void process() {
//should I use:
getAgreement().doSomething();
//Or:
agreement.doSomething();
}
}
一般に、KISS の原則により、フィールドに直接アクセスするのが最善であり、誰かが後で get メソッドをオーバーライドして予測できない結果になる可能性があると思います。
しかし、私の同僚は、抽象化のレイヤーを保持する方が良いと主張しています。これについてコンセンサスはありますか?