일부 DDD 개념을 적용하려고하고 있는데, 엔티티가 자체 메소드를 호출하거나 사용자 (액터)가 그렇게하는 것이 더 합리적인 이유가 궁금합니다.엔티티가 자체 동작을 호출하거나 배우를 수행합니까?
예를 들어 Appointment 엔티티가 있다고 가정 해 보겠습니다. 사용자는 해당 약속의 소유자 인 경우에만 약속을 취소 할 수 있습니다 (따라서 해당 작업을 허용하기 전에 사용자에게 적절한 권한이 있는지 확인해야합니다). 우리는 두 가지 방법의 하나를 수행 할 수 있습니다 제한된 상황은 "약속"입니다
pseudocode
// method #1
User.Cancel(a *Appointment) result
// method #2
Appointment.Cancel(u *User) result
을하지만 사용자가 다른 방법으로 주위보다 실체에 행동을 호출하기 위해 더 많은 의미를 보인다. 어느 쪽이 더 낫고 왜 그럴까요?
답변 해 주셔서 감사합니다. 권한 검사가 집합체에 속하지 않는다고 말할 때를 제외하고는 모든 것이 명확합니다. 나는 집계가 도메인 지식을 캡슐화하고 불변성을 강제하기위한 것이라고 생각했습니다. 귀하의 예를 사용하기 위해, 비서실 도메인 객체가 할 수있는 일과 할 수없는 일을 'AR'로 약속하지 않아야합니까? – user7467314
권한 부여는 교차 관심사이므로 일반적인 하위 도메인입니다. 에릭 에반스 (Eric Evans)의 DDD 책, DDD 구현 책 및 다른 모든 출처에서이 책은 또 다른 BC로서의 구현 자입니다. http://stackoverflow.com/a/23485141/2575224에서 더 많은 내용을 보거나 google에서 "permission ddd"를 검색하면됩니다. –