1

我有以下情况:

我正在设计一个 MVVM 应用程序,它通过串行端口或其他东西与一些计算机外部设备进行通信。每个Device都有一些属性,例如 id、名称等,并且还由Module具有自己属性的不同 's 组成。我有一种 xml 数据库来保存和加载设备。每个Device都有自己的文件。反正:

该应用程序通过一种存储库加载所有文件,并提供一个列表Devices以选择实际连接的文件或创建新文件。当我选择 currentDevice时,我会得到一个页面,该页面表示Modules基于设备类型的列表。IE:

Device_Type_A包括Module_AModule_B

Device_Type_B包括Module_AModule_C

...

的属性Modules通过通信填充。现在我想将Modules一种模块状态历史的状态保存到当前设备的 xml 文件中。

这样做的最佳做法是什么?ModuleSnapshot基于Fowlers Snapshot创建一个类并存储它有用吗?还是我必须做一种不可变的值对象并将其存储到文件中?

设备是实体,但模块历史条目感觉像值对象。我也想显示加载的设备文件的历史记录。是否需要一个Module类作为通信东西的模型和一个类作为它的不可变值对象副本,比如ModuleHistory?

像这样的东西?

public class Device_Type_A : DeviceBase
{
    // Some special Type_A properties ...
    public string Type_A_Shape{get; set;}
    // ...       
}

public class DeviceBase
{
    public string Id  { get; private set; }
    public string DeviceName { get; private set; }
    public List<ModuleHistory> History { get; private set; }
    // ...
}
4

1 回答 1

2

保存对象的状态以备将来使用............备忘录模式

于 2012-08-06T05:18:43.373 回答