저는 현재 외부 구성 요소 (주로 라우터, 스위치, NVT 및 통신 프로토콜과 같은 물리적 장치 (SNMP, Ping, RTSP ...))에 크게 의존하는 프로젝트를 진행하고 있습니다. 나는 그 장치들을 감시 할 필요가있다 (온라인인가? 상태는 어떻습니까?) 그들에게 운용 메시지를 보냅니다.도메인 서비스 구현
는 당연히, 이것은 정말 필요로하는 유일한 도메인 엔티티 (...이 포트를 활성화, 해당 작업을 시작합니다) :
public class Device {
public long IpAddress { get; set; }
...
}
그러나 나는 확실히 많은 서비스를해야합니까. ISnmpService, IPingService, IFtpService, ... 이제 나 자신에게 묻습니다. DDD가 어떻게 여기에서 나를 도울 수 있습니까? 어떤 계층에서 이러한 서비스를 구현해야합니까? 그것들은 심지어 '진짜'도메인 서비스입니까? 그것들은 인프라 스트럭처 레이어에 속하거나 도메인 레이어에 서비스를 구현하는 것이 좋을까요?
그리고 이러한 구현은이 같은 문제를 해결할 수있는 방법 :
public HorribleController : ApiController {
public HorribleController(
ISnmpService snmpService,
IRtspService rtspService,
IPingService pingService,
IOnVifService onvifService)
{
...
}
public AddDevice(Device device) {
snmpService.Add(device);
rtspService.Add(device);
rtspService.Connect(device);
pingService.Watch(device);
onvifService.Add(device);
}
}
나는 당신이 당신의 도메인의 경계에서 의도를 드러내는 명령을 놓치고 있다고 생각합니다. – JefClaes