我有一组这样的数据对象......
class Image
{
string FilePath { get; set; }
byte[] Content { get; set; }
}
class ThingWithImages
{
IList<Image> Images1 { get; set; }
Image DifferentImage { get; set; }
}
class AnotherThingWithImages
{
IList<Image> Images2 { get; set; }
}
我需要使用 Image 属性或 Image 对象集合和 1) 遍历所有这些对象。将文件加载到内容字节数组中,2)。修改 FilePath 属性。稍后我需要将 Image 对象恢复到其原始状态。
实现这一目标的最佳方法是什么?
我最初定义了一个接口并在每个包含 Image 的对象上实现它
interface IContainImage
{
void Load();
void Restore();
}
但这为普通的 POCO 数据对象添加了很多逻辑和附加状态(用于恢复),所以我不喜欢这个解决方案。
访客模式在这里适用吗?在哪里存储恢复操作所需的状态数据?