문제

도메인 계층 또는 데이터 액세스 계층에서?

도움이 되었습니까?

해결책

DTOS의 주요 동기는 다른 계층에 맞춰진 인터페이스를 제시하는 것입니다 (일반적으로 프리젠 테이션 계층). 예를 들어, 데이터 입력 화면은 주문 등의 비트 외에도 사용자 객체의 데이터 비트가 필요할 수 있습니다.이 경우 DTO에서 도메인은 프리젠 테이션 계층이 호출하는 계층에서 발생해야합니다. "서비스"레이어.

라이브러리가 있습니다 도저 도메인 모델과 DTO 사이의 변환 작업을 자동화하는 작업을 자동화합니다.

키는 DTOS가 더 풍부한 도메인 모델 객체에서 데이터 (비즈니스 로직 아님)를 추출하기위한 것입니다. 따라서 DTOS는 가능한 빨리 도메인 객체로 다시 변환하여 응용 프로그램 계층의 나머지 부분을 다시 변환해야합니다. 더 풍부한 도메인 객체 (데이터 및 비즈니스 로직)에서 작동 할 수 있습니다.

다른 팁

나는 DTO의 팬이 많지 않지만 데이터 계층에서하지 않는다고 말합니다. 데이터 계층은 모델 객체 및 지속성을 처리합니다. DTO를 가져 와서 다른 레이어와 결합하는 이유는 무엇입니까? 나는 그들이 생성 된 위치와 사용되는 곳 사이의 경계를 가로 지르는 지점에서 다른 곳에서, 아마도 서비스와 UI 계층 사이에 그들을 매핑 할 것입니다.

이것을 MVC 컨텍스트에 넣으면 컨트롤러와 서비스 계층이 모두 있으면 컨트롤러에 넣어야합니다. 이렇게하면 DTO가 뷰 레이어에 가까워지고 서비스 계층이 도메인 객체만으로 플레이 할 수있어 다른 모델과의 혼란을 피할 수 있습니다.

DTO 자체는 실제로 MVC 모델입니다 (여기에 설명 : https://stackoverflow.com/a/1058186).

아래는 컨트롤러, 서비스 계층 및 DTO 개념을 함께 으깨는 권장 튜토리얼입니다 (스프링 프레임 워크를 사용하여 Java에서는 다른 플랫폼에서도 개념이 명확합니다).https://www.baeldung.com/entity-to-n-from-for-a-java-spring-application

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top