Closed thdwoqor closed 4 months ago
classDiagram
CryptoSymbol ..> DuplicateCryptoSymbolValidator
DuplicateCryptoSymbolValidator --> CryptoSymbolRepository
CryptoSymbolRepository ..> CryptoSymbol
classDiagram
DuplicateCryptoSymbolValidator ..|> CryptoSymbolValidator
CryptoSymbol ..> CryptoSymbolValidator
CryptoSymbolRepository ..> CryptoSymbol
도메인 서비스는 인터페이스로 추상화하여 도메인 서비스가 특정 구현에 종속되는 것을 방지하고, 의존성 사이클이 생기는 문제를 해결했습니다.
문제
변경 사항
외부 시스템이나 의존적인 중복 이름 검사를 도메인 서비스로 이동하고, 검증이 필요한 로직에서는 validator를 주입받아 실행하는 방식으로 변경하였습니다. 이 방식을 사용할 경우, 객체를 생성 및 변경할 때 도메인 내부에서 검증을 진행하므로 도메인 내부 값이 항상 검증된 값임을 보장할 수 있습니다. 또한, 도메인만 봐도 해당 도메인이 가지고 있는 규칙을 한눈에 파악할 수 있습니다.