1

나는 날카로운 아키텍처를 탐구하고 있으며 실제로 엔티티를 (프레젠테이션 레이어까지) 다른 레이어로 전달하고있는 것을 보아왔다. 더 느슨하게 결합되도록 엔티티의 인터페이스를 노출해야하지 않습니까? 또는 나는 무엇인가 놓치고 있냐?엔티티를 다른 레이어에 전달 하시겠습니까? (ddd noob)

+0

당신이 의미하는 것을 보여주는 코드 예제를 제공 할 수 있습니까? – UpTheCreek

답변

1

나는 여러 가지 방법으로 DDD를 할 수 있다고 믿는다. 가장 중요한 것은 실제로 프로젝트의 필요와 상황을 보는 것이다. asp.net MVP 또는 MVC 웹 응용 프로그램에서 DDD를 처리하고 응용 프로그램이 다른 외부 시스템과 대화하지 않을 것입니다. 그런 다음 프리젠 테이션 레이어가 도메인에 대해 알지 못하게하기 위해 서비스 레이어와 DTO 객체를 사용하는 것은 과도 할 수 있습니다. 가장 중요한 점은 엔티티 생성, 도메인 로직 및 엔티티 생성에 대한 지식을 숨기거나 제거하여 엔티티를 유효하지 않은 상태로 만드는 것입니다. 이 모든 것은 좋은 도메인 엔티티 API를 사용하여 수행 할 수 있습니다. 그런 다음 엔티티를 프리젠 테이션 레이어로 보내는 것이 좋습니다. 또한 프리젠 테이션 레이어의 Controller/Presenter 클래스에서 엔티티를로드하는 데 리포지토리를 사용할 수 있습니다. 많은 DDD 예제를 살펴보면 사람들이 가장 적합한 스위트 룸을 찾는 경향이 있음을 알 수 있습니다. 인터페이스를 사용하여 엔티티를 노출하는 예와 관례를 본 적이 없습니다. 내부, 보호 및 읽기 전용 속성을 사용하면 많은 것을 얻을 수 있습니다. 그러면 프리젠 테이션 레이어의 API 기능이 숨겨집니다.

/우수 BacceSR

관련 문제