첫 번째 단계를 도메인 기반 디자인으로 설정하고 청서를 구입했으며 특정 솔루션을 구현하는 세 가지 방법을보고 있습니다. 기록을 위해 : 나는 CQRS 또는 이벤트 소싱을 사용하지 않습니다.
사용자 요청이 응용 프로그램 서비스 계층으로 들어 온다고 가정 해 봅시다. 해당 요청의 비즈니스 로직은 (어떤 이유로 든) 엔티티의 메소드와 도메인 서비스의 메소드로 구분됩니다. 이러한 메소드를 호출하려면 어떻게해야합니까?
지금까지 수집 한 옵션은 다음과 같습니다.
- 응용 프로그램 서비스가 두 메소드를 모두 호출하도록하십시오
- 메소드 인젝션 / 이중 디스패치를 사용하여 엔티티에 도메인 서비스를 주입 한 후 엔티티가하는 일을 도메인 서비스의 메소드를 호출하게하십시오 (또는 다른 방법으로 도메인 서비스가 엔티티의 메소드를 호출하게 함)
- 엔티티 메소드에서 도메인 이벤트를 발생시킵니다. 핸들러는 도메인 서비스를 호출합니다. (내가 이야기하는 도메인 이벤트의 종류는 다음과 같습니다. http://www.udidahan.com/2009/06/14/domain-events-salvation/ )
나는 이것들이 모두 가능하다고 생각하지만, 그것들 중에서 선택할 수는 없습니다. 나는 이것을 오랫동안 생각해 왔으며 더 이상 세 가지의 의미 론적 차이를 볼 수없는 시점에 도달했습니다. 무엇을 사용해야 할 때 몇 가지 지침을 알고 있습니까?