我的数据访问层中有以下类(为简洁起见省略了详细信息)(可访问性可能不正确,具体取决于问题本身的答案,所有字段也可能表示为属性):
public class Machine {
MachineType Type;
...
public ??? GetAlarms() { }
public ??? GetWarnings() { }
public void RegisterAlarm(short offset, bool active) { }
public void RegisterWarning(short offset, bool active) { }
...
class MachineType {
...
public class AlarmMessage {
MachineType MachineType; // machine type to which message applies
public short Offset; // offset of alarm (error #)
public string Text; // message
...
}
public class WarningMessage {
MachineType MachineType; // machine type to which message applies
public short Offset; // offset of warning (error #)
public string Text; // message
...
}
}
class MachineAlarm {
Machine Machine;
AlarmMessage Message;
DateTime Timestamp;
bool Active;
...
}
class MachineWarning {
Machine Machine;
WarningMessage Message;
DateTime Timestamp;
bool Active;
...
}
}
现在的问题是我应该如何根据选择的返回类型实现 GetAlarms() 和 GetWarnings()Machine
的返回类型,我的嵌套是否正确(另请参见https://stackoverflow.com/a/7402906/1085457) . 我需要在数据模型之外的实际响应是警报或警告的文本表示以及开始和结束(如果设置)时间。
我也不确定在警报中使用“活动”属性是否过于复杂,但现在它实际上用于对警告和警报进行时间线概览。
我希望你们中的一位大师能告诉我这种嵌套是否正确,是否可以通过添加两个与该类处于同一级别的Machine
类来完成,或者我是否应该完全更改结构并返回带有警报的数据访问对象和警告。