증오는 대답하지만 DDD 환경에서, 내 대답은 '아니 될 것입니다.
첫 번째 예에서는 역할 저장소가 사용자 도메인을 잘 모르는 경우가 있지만 응용 프로그램이 사용자의 ID를 가져 와서 다른 저장소를 쿼리하는 데 필요한 역할을 알아야한다는 것을 의미합니다 . 즉, 응용 프로그램은 사용자와 역할 사이의 매퍼 (mapper) 역할을합니다.
두 번째 예에서 역할 저장소는 이제 사용자 도메인에 대해 알아야합니다. 그다지 좋지는 않지만 다른 한편으로 애플리케이션은 더 이상 roleId에 대해 알 필요가 없습니다. 그래서 그것은 좋다. 두 가지 접근 방식 사이의 고전적인 거래.
두 경우 모두 응용 프로그램은 정보를 얻기 위해 여전히 두 개의 저장소가 필요합니다. 더 많은 관계가 필요할 때 어떻게됩니까? 리포지토리의 수는 빠르게 증가하고 모든 것이 엉망이됩니다.
도메인 기반 디자인에서는 집계 루트 (AR)와 도메인 컨텍스트를 고려해야합니다. 예제 컨텍스트에서 사용자는 AR이고 역할은 하위가됩니다. 그래서 당신이있을 수 있습니다
하면 응용 프로그램에서 구현 세부 사항의 대부분을 숨기고 도메인 엔티티가 실제로 무엇을해야하는지에 초점을 맞출 수
var user = _userFinder.GetById(1);
var customRole = user.CustomRole;
.
을 무엇인가 사용자와 역할이로드되고 있습니까? – tomliversidge
@tomliversidge 인증 토큰을 생성하고 해당 토큰에 연결할 역할 권한을 부여하려면 – Robert