Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 了解服务和DAO层_Java_Hibernate_Architecture_Persistence_Dao - Fatal编程技术网

Java 了解服务和DAO层

Java 了解服务和DAO层,java,hibernate,architecture,persistence,dao,Java,Hibernate,Architecture,Persistence,Dao,我被要求在项目的业务逻辑模块中创建类的文档。我注意到有一个关于如何创建类的模式。图案是这样的 public class AModel(){ //fields //getter and setters } public class AService(){ public void processA(AModel model){ //creates instance of AMo

我被要求在项目的业务逻辑模块中创建类的文档。我注意到有一个关于如何创建类的模式。图案是这样的

    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));
            }
    }

我不明白的是,既然ADaoService方法只是调用ADao方法,为什么AService调用ADaoService方法而不是仅仅调用ADao方法。在我看来,ADaoService只是浪费代码。它们是usignhibernate和jbossserver。我对这种类型的建筑还不熟悉。希望有人能帮我理解。谢谢。

好吧,如果
ADaoService
除了将调用委托给
ADao
之外什么都不做,那么很明显你是对的-它目前没有存在的理由

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

要么你的架构师对图层很大方,要么他们考虑了一些不典型的场景

如果没有图层的当前用法,也没有明确的未来用法,那么最好不要图层