我有不同的规则和例外一个相当复杂的领域,我不知道,如果抽象工厂可以帮助我走出这片丛林中。抽象工厂泛型
域描述
有一网络中的各种不同的硬件设备。他们都有一个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的新实例。没有枚举我怎么能做到这一点?我是否需要为每种可能的设备和终端提供工厂?