1

このようなデータオブジェクトのセットがあります...

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 データ オブジェクトに多くのロジックと追加の状態 (復元用) を追加しているため、このソリューションは好きではありません。

訪問者パターンはここで適用できますか? 復元操作に必要な状態データをどこに保存しますか?

4

1 に答える 1