다양한 규칙과 예외가있는 매우 복잡한 도메인이 있으며 추상 팩토리가이 정글에서 나를 도울 수 있는지 궁금합니다.generics가있는 추상 팩터 리
도메인 정보
네트워크의 다양한 상이한 하드웨어 장치가있다. 모두 IP 주소를 가지고 있지만 송신기 또는 수신기 유형입니다 (구성에 따라 변경 될 수 있음). 액세스하는 방법 (프로토콜) 및 이러한 액세스 포인트의 모양은 장치 자체에 따라 다릅니다.
도메인
public abstract class NetworkDevice {
public IPAddress IpAddress { get; set; }
public List<Endpoint> Endpoints { get; set; }
public NetworkConfiguration NetworkConfiguration { get; set; }
}
public abstract class Endpoint {
public bool IsMulticast { get; set; }
public string PayloadType { get; set; }
}
public IPCamera: NetworkDevice {
// a IPCamera usually has various RTSP endpoints
// Is the following solution acceptable v
public List<RtspEndpoint> RtspEndpoints {
get {
return this.Endpoints.Where(x => x is RtspEndpoint);
}
}
}
public RtspEndpoint : Endpoint {
public string MediaControl { get; set; }
}
public abstract SpecialDevice : NetworkDevice {
// this device has RTSP and ONVIF endpoints
// and can be EITHER transmitter or receiver
// depending on configuration
}
public SpecialDeviceTransmitter : SpecialDevice {
// has RTSP & ONVIF endpoints
}
public SpecialDeviceReceiver {
// has only ONVIF endpoints
}
지금, 나는 3 RTSP 엔드 포인트 및 1 ONVIF 엔드 포인트의 미리 정의 된 설정을 가진 SpecialDeviceTransmitter의 새 인스턴스를 만들 싶습니다. 열거 형이 없으면 어떻게 만들 수 있습니까? 그리고 가능한 모든 장치와 종단점을위한 공장이 필요합니까?