このようなデータオブジェクトのセットがあります...
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) のいずれかを使用して、これらすべてのオブジェクトをトラバースする必要があります。ファイルを Content バイト配列にロードします。2)。FilePath プロパティを変更します。その後、Image オブジェクトを元の状態に復元する必要があります。
これを達成するための最良の方法は何ですか?
私は最初にインターフェースを定義し、それを Image を含むすべてのオブジェクトに実装しました。
interface IContainImage
{
void Load();
void Restore();
}
しかし、これはプレーンな POCO データ オブジェクトに多くのロジックと追加の状態 (復元用) を追加しているため、このソリューションは好きではありません。
訪問者パターンはここで適用できますか? 復元操作に必要な状態データをどこに保存しますか?