了解服务和DAO层

时间:2012-08-16 05:46:20

标签: java hibernate architecture persistence dao

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

    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服务器。我对这种类型的架构不熟悉。希望有人能帮助我理解。感谢。

1 个答案:

答案 0 :(得分:8)

好吧,如果ADaoService除了将来电委托给ADao之外什么都没做,那么显然你是对的 - 目前

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

你的建筑师要么慷慨有层次,要么考虑到一些非典型的场景。

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