私の同僚は、ゲッターとセッターのロジックはできるだけ少なくすべきだと言っています。
しかし、ゲッターとセッターには多くの要素が隠されており、実装の詳細からユーザー/プログラマーを保護できると確信しています。
私がすることの例:
public List<Stuff> getStuff()
{
if (stuff == null || cacheInvalid())
{
stuff = getStuffFromDatabase();
}
return stuff;
}
仕事のやり方の例は、物事を行うように私に言っています(彼らはボブおじさんからの 'Clean Code'を引用しています):
public List<Stuff> getStuff()
{
return stuff;
}
public void loadStuff()
{
stuff = getStuffFromDatabase();
}
セッター/ゲッターではどのくらいのロジックが適切ですか?データ隠蔽の違反を除いて、空のゲッターとセッターの使用は何ですか?
public List<Stuff> getStuff() { return stuff; }
StuffGetter
インタフェースを実装StuffComputer
計算を行いいるが、とのオブジェクト内にラップStuffCacher
キャッシュにアクセスするかに電話を転送するのいずれかを担当している、StuffComputer
それがラップしていること。