我有不同的規則和例外一個相當複雜的領域,我不知道,如果抽象工廠可以幫助我走出這片叢林中。抽象工廠泛型
域描述
有一網絡中的各種不同的硬件設備。他們都有一個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的新實例。沒有枚舉我怎麼能做到這一點?我是否需要爲每種可能的設備和終端提供工廠?