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

    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 用法-最好没有它。

09-25 23:05