データ アクセス レイヤーに次のクラス (簡潔にするために詳細は省略) があります (質問自体への回答によっては、アクセシビリティが正しくない可能性があります。また、すべてのフィールドはおそらくプロパティとして表されます)。
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;
...
}
}
Machine
ここでの問題は、ネストが正しいかどうかに応じて、選択した戻り値の型に応じてGetAlarms() および GetWarnings() の戻り値の型を実装する方法です ( https://stackoverflow.com/a/7402906/1085457も参照) . データ モデルの外部で必要な実際の応答は、アラームまたは警告のテキスト表現と、開始時刻と終了時刻 (設定されている場合) です。
また、アラームに「アクティブ」プロパティを使用することで複雑になりすぎているかどうかもわかりませんが、現在、実際には警告とアラームのタイムラインの概要を行うために使用されています。
このネスティングが正しいかどうか、クラスと同じレベルに 2 つのクラスを追加することで完了するMachine
かどうか、または構造を完全に変更してアラームとデータ アクセス オブジェクトを返す必要があるかどうかを教えてください。警告。