【发布时间】:2013-04-19 17:02:08
【问题描述】:
我有一个接口SomethingDao 和一个实现类SomethingDaoImpl。该接口仅包含 11 个方法,但每个方法都需要一个或多个复杂的 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 有几个“工蜂”为它做所有的工作,而它只是管理它们?
仅仅是DAO管理器模式,其中Helper1、Helper2、Helper3是DAO对象吗?我对正确的命名约定感兴趣,所以在这种情况下,我会将SomethingDaoImpl 重命名为SomethingDaoManager,而Helper 将变为HelperDao。
我还看到在它的位置使用了名称“服务”,在这种情况下,SomethingDao 接口将重命名为SomethingService,并且工蜂类将在其名称的末尾带有DAO。
谢谢...我想我只是在寻找与此场景相关的命名约定和设计模式。我希望实现尽可能清晰,并且具有暗示我正在使用的模式的名称会非常有帮助。
【问题讨论】:
标签: java oop design-patterns