나는 날카로운 아키텍처를 탐구하고 있으며 실제로 엔티티를 (프레젠테이션 레이어까지) 다른 레이어로 전달하고있는 것을 보아왔다. 더 느슨하게 결합되도록 엔티티의 인터페이스를 노출해야하지 않습니까? 또는 나는 무엇인가 놓치고 있냐?엔티티를 다른 레이어에 전달 하시겠습니까? (ddd noob)
1
A
답변
1
나는 여러 가지 방법으로 DDD를 할 수 있다고 믿는다. 가장 중요한 것은 실제로 프로젝트의 필요와 상황을 보는 것이다. asp.net MVP 또는 MVC 웹 응용 프로그램에서 DDD를 처리하고 응용 프로그램이 다른 외부 시스템과 대화하지 않을 것입니다. 그런 다음 프리젠 테이션 레이어가 도메인에 대해 알지 못하게하기 위해 서비스 레이어와 DTO 객체를 사용하는 것은 과도 할 수 있습니다. 가장 중요한 점은 엔티티 생성, 도메인 로직 및 엔티티 생성에 대한 지식을 숨기거나 제거하여 엔티티를 유효하지 않은 상태로 만드는 것입니다. 이 모든 것은 좋은 도메인 엔티티 API를 사용하여 수행 할 수 있습니다. 그런 다음 엔티티를 프리젠 테이션 레이어로 보내는 것이 좋습니다. 또한 프리젠 테이션 레이어의 Controller/Presenter 클래스에서 엔티티를로드하는 데 리포지토리를 사용할 수 있습니다. 많은 DDD 예제를 살펴보면 사람들이 가장 적합한 스위트 룸을 찾는 경향이 있음을 알 수 있습니다. 인터페이스를 사용하여 엔티티를 노출하는 예와 관례를 본 적이 없습니다. 내부, 보호 및 읽기 전용 속성을 사용하면 많은 것을 얻을 수 있습니다. 그러면 프리젠 테이션 레이어의 API 기능이 숨겨집니다.
/우수 BacceSR
관련 문제
- 1. 요청 객체를 서비스 레이어에 전달
- 2. 구문 분석 함수에서 JSON obj를 전달 하시겠습니까? | noob javascript 질문
- 3. 데이터 액세스 레이어에 환경 변수 전달
- 4. SOA의 다른 레이어에 관한 질문
- 5. C : noob 알맞은 디버거
- 6. DDD : 여러 스토리지 시스템에 저장된 하나의 엔티티를 처리하는 방법은 무엇입니까?
- 7. 모든 레이어에 레이어 마스크를 적용 하시겠습니까?
- 8. 세션 쿠키를 다른 IP로 전달 하시겠습니까?
- 9. VirtualTreeview 노드를 다른 양식으로 전달 하시겠습니까?
- 10. 한 화면에서 다른 화면으로 값을 전달 하시겠습니까?
- 11. webservice에 대한 호출을 다른 webservice로 전달 하시겠습니까?
- 12. 쉘 결과를 다른 쉘 명령에 전달 하시겠습니까?
- 13. 애플리케이션의 다른 레이어에 JSF 로케일을 전파하는 방법
- 14. 다른 레이어에 데이터 집합 전달하기 (디자인 관련)
- 15. POJO를 사용하여 복잡한 JPA 엔티티를 컨트롤러에 전달
- 16. 이벤트를 상위보기로 전달 하시겠습니까?
- 17. nCover.console에 따옴표를 전달 하시겠습니까?
- 18. NHibernate가있는 DDD 저장소 패턴
- 19. 저장, 진행, DDD, 엔티티
- 20. DataContracts를 어느 레이어에 포함시켜야합니까?
- 21. 데스크톱 레이어에 윈도우 만들기
- 22. kwargs를 템플릿에서보기로 전달 하시겠습니까?
- 23. Noob 질문 : Wordpress Looping
- 24. DDD 다른 저장소에 대한 저장소 인식
- 25. 엔티티를 DDD의 작은 엔티티로 분할 하시겠습니까?
- 26. 참조로 전달/저장 하시겠습니까?
- 27. 핵심 데이터 엔티티를 enum으로 사용 하시겠습니까?
- 28. C++ 참고로 전달 하시겠습니까?
- 29. CSS에서 참조를 전달 하시겠습니까?
- 30. PHP에서 값을 전달 하시겠습니까?
당신이 의미하는 것을 보여주는 코드 예제를 제공 할 수 있습니까? – UpTheCreek