我被要求在项目的业务逻辑模块中创建类的文档。我注意到有一个关于如何创建类的模式。图案看起来像这样
public class AModel(){
//fields
//getter and setters
}
public class AService(){
public void processA(AModel model){
//creates instance of AModel, assigns values to fields
//calls ADaoService methods
}
}
public class ADaoService(){
//has methods which call ADao methods
//sample
public AModel retrieveById(long id){
log.debug(...);
return (ADao.retrieveById(id));
}
}
public class ADAo(){
//has entityManager and some query
public AModel retrieveById(long id){
return((AModel) entityManager.find(AModel.class, id));
}
}
我不明白的是,为什么AService调用ADaoService方法而不是仅调用ADao方法,因为ADaoService方法只是调用ADao方法。在我看来,ADAoService只是浪费代码。它们是有用的Hibernate和JBoss服务器。我只是这种架构的新手。希望有人能帮助我理解。谢谢。
最佳答案
好吧,如果ADaoService
除了将调用委派给ADao
之外什么也没做,那么您显然是对的-目前尚无生存理由。
关于将来的理由,对于AFAIK,典型的分层不包括ADaoService
层。我在哪里工作,却没有。从未在Hibernate文档中看到它...
您的建筑师要么对层有足够的慷慨,要么就想到了一些非典型的场景。
如果没有该层的当前用法,也没有明确的 future 用法-最好没有它。