다음 패턴으로 DDD를 따르려고합니다. 위의 그림에서 보듯이DDD - 비즈니스 의사 결정은 데이터베이스 로직을 기반으로합니다.
Controller-----DataContract----> Domain Layer (DDD)
Controller-----Domain Object---> Repository---Entity--->EntityFramework
는 도메인 층 비즈니스 결정을 내릴 독립적이지만, 내 경우, 비즈니스 의사 결정의 대부분은 즉시 가져옵니다. 예를 들어,
if(Account Number Associated?)
Load CustomerDetails //A database call is needed
....
.....
if(Has customer another loan)
.....
.....
Load other loan details //A database call is needed
.....
.....
if(Was that repaid?)
....
....
Load collateral details //A database call is needed
.....
.....
Calculate collateral details and return.
else
Load other data //A database call is needed
else
Load other data //A database call is needed
else
Load other data //A database call is needed
위의 예에서 알 수 있듯이 응용 프로그램은 데이터베이스 호출을 통해 신속하게 많은 비즈니스 결정을 내리고 있습니다. 도메인 레이어은 리포지토리 레이어에 의존해서는 안되므로 진행 방법을 모르겠습니다.
나는 데이터베이스 호출에 응용 프로그램 서비스를 사용할 수 있지만 다음 도메인 계층는 어떠한 논리가없는 것입니다. 모든 논리는 신청 서비스에 들어갑니다.
도와주세요.
-Pandian
안녕하세요, @VoiceOfUnreason, 도움에 감사드립니다. 제 경우에는 처음 두 가지 접근법을 사용할 수 없습니다. 이런 종류의 "도메인 서비스"에 대한 github/코드 예제를 가르쳐 주시겠습니까? 또한, "애플리케이션이 구현을 제공"한다는 것은 "** 애플리케이션 서비스 **가 구현을 제공합니다"라는 의미입니까? – Pandiarajan