2012-08-16 4 views
4

프로젝트의 비즈니스 로직 모듈에 클래스 문서를 생성하라는 메시지가 나타납니다. 클래스가 어떻게 생성되었는지에 대한 패턴이 있음을 발견했습니다. 패턴은 AService가 대신 ADaoService 방법부터 ADao 메소드를 호출의 ADaoService 방법 그냥 ADao 메소드를 호출하는 호출 않는 이유를 내가 이해하지 못하는 것은이서비스 및 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)); 
      } 
    } 

것 같습니다. ADaoService는 코드 낭비였습니다. 그것들은 하이버 네이트와 JBoss 서버를 사용한다. 나는이 유형의 아키텍처에 처음으로 익숙하다. 누군가가 나를 이해하는 데 도움이되기를 바랍니다. 감사.

답변

8

음, ADaoService이라면 분명히 당신이 옳은 것 ADao에 대한 호출을 위임 제외한 아무것도하지 않고있다 - 그것은 순간에서 어떤 존재의 정당성 이 없습니다.

미래에 대해서는 정당화, 잘 AFAIK, 일반적인 레이어링에는 ADaoService 레이어가 포함되지 않습니다. 내가 일하는 곳에서 우리는 그것을 가지고 있지 않습니다. Hibernate docs에서 본 적이 없다 ...

당신의 아키텍트가 계층에 관대했거나 어떤 비 전형적인 시나리오를 염두에 두었습니다.

레이어의 현재 사용법이없고 향후의 명확한 사용법이없는 경우 더 이상 사용하지 않는 것이 좋습니다.

관련 문제