了解服务和DAO层

Fra*_*ith 4 java architecture persistence dao hibernate

我被要求在项目的业务逻辑模块中创建类的文档.我注意到有关如何创建类的模式.模式看起来像这样

    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));
            }
    }
Run Code Online (Sandbox Code Playgroud)

我不明白为什么AService调用ADaoService方法而不是只调用ADao方法,因为ADaoService方法只是调用ADao方法.在我看来,ADaoService只是浪费代码.它们是Hibernate和JBoss服务器.我对这种类型的架构不熟悉.希望有人能帮助我理解.谢谢.

yai*_*air 8

好吧,如果ADaoService是做什么,但委托给来电ADao那么显然你是对的-它没有存在的理由在此刻.

关于未来的理由,AFAIK,典型的分层不包括ADaoService层.我工作的地方没有.在Hibernate docs中从未见过它...

要么你的建筑师慷慨有层次,要么他们有一些非典型的场景.

如果没有该层的当前用法且没有明确的未来用法 - 没有它你会更好.