インターフェイスSomethingDao
と実装クラス がありSomethingDaoImpl
ます。インターフェイスは 11 のメソッドのみで構成されていますが、各メソッドには 1 つ以上の複雑な SQL クエリが必要です。
実装クラスをいくつかの小さなクラスに分割しました。より適切な名前がないため、それらHelper1
を , Helper2
, Helper3
, ...と呼びましょう。HelperN
にはそれぞれのSomethingDaoImpl
インスタンスがあり、メソッド呼び出しをそれぞれにルーティングします。
public class SomethingDaoImpl implements SomethingDao {
private Helper1 helper1;
private Helper2 helper2;
private Helper3 helper3;
// ...
private Helper8 helper8;
public List<X> getX(...) {
return helper1.getX();
}
public List<Y> getY(...) {
return helper2.getY();
}
public List<X> getDetailedX(...) {
List<X> ds = getX(...);
helper6.addTo(ds);
helper7.addTo(ds);
helper8.addTo(ds);
return ds;
}
}
この技に名前はありますか?複雑なDAOには、すべての作業を行う「働きバチ」がいくつかあり、それらを管理するだけですか?
Helper1、Helper2、Helper3 が DAO オブジェクトである、単なる DAO マネージャー パターンですか? 適切な命名規則に興味があるので、この場合は名前を に変更SomethingDaoImpl
しSomethingDaoManager
、 にHelper
なりHelperDao
ます。
その代わりに「サービス」という名前が使用されているのも見SomethingDao
ましSomethingService
たDAO
。
ありがとう...このシナリオに関連する命名規則とデザインパターンを探しているだけだと思います。実装をできるだけ明確にしたいと考えています。使用しているパターンを示唆する名前を付けると非常に役立ちます。