단위를 관리 할 수있는 "MyUnits"응용 프로그램이 있습니다 (예 : 미터, 킬로그램, 파운드, 마일, km/h ...). 모델이 복잡하고 단위 호환성, 작업, 변환 등을 지원합니다.DDD with webservices 값 객체로 DTO : 어떻게 처리할까요?
"단위"를 사용해야하는 다른 응용 프로그램 (MyApp)이 있으므로 "단위"응용 프로그램을 사용하고 싶습니다. .
제가 생각하기에 단위 DTO UnitDTO
을 소비하고 반환하는 "단위"서비스 (웹 서비스) UnitService
이 있어야합니다.
Operand
value: float
unit: UnitDTO
OperationAdd
operand1: Operand
operand2: Operand
execute()
문제 : MyApp를에서
,이 모델이 OperationAdd.execute()
에, 나는 단위 (예를 들어) 호환되는지 확인해야합니다. 그러니
는 :
UnitDTO
UnitService::areCompatible
를 호출하는 방법이 있지만, 그것은 잘못입니다! DTO (데이터 만 포함해야 함)가 webservice 인 UnitService를 어떻게 알 수 있습니까! 하지 않아야합니다OperationAdd.execute()
UnitService::areCompatible
으로 전화를 걸면됩니다. OperationAdd (엔티티)가 웹 서비스 인 UnitService를 아는 방법! 그것은안 또는 내가 일을하는
OperationService
이 (그 서비스를 호출 할 수 있습니다) 을하지만 내Operation
실체가없는 방법과 데이터 컨테이너, 엔티티처럼 될 것이며, 그 DDD는 약 정말 무엇
빈혈 엔티티는 원하지 않지만 서비스를 사용하는 엔티티가있는 경우 어떻게해야합니까?
그리고 UnitDTO가 VO로 사용될 수 있다고 생각 하나?
나는 "Units"앱의 엔티티입니다. 데이터베이스에 저장되어 있습니다.단위 간 변환 수 (km, m, mile, foot, ...)가 있습니다. 그래서 webservice는 단위 엔티티에 접근하기 위해 단위 DTO를 제공합니다. 그래서 다른 응용 프로그램에서 DTO를 VO로 사용하는 것은 잘못된 것입니다 ... –
혼란스러워 보이지만 네, DTO를 VO로 사용해서는 안됩니다. 다른 목적 – MikeSW