3

Windowsフォームアプリケーションのコピーを作成するためのメメントパターンに似た一般的な方法はありますSettings.Default.PropertyValuesか? 特定のプロパティ値が変更されているかどうかを確認する必要があります。

object state = CreateMemento(Settings.Default.PropertyValues);

// show windows dialog where properties may change and be saved

SettingsPropertyValueCollection settings = GetMemento(state);
if (IsSomePropertyChanged(settings, Settings.Default.PropertyValues);
    DoSomeAction(); 
4

1 に答える 1

1

関連するデザイン パターンは、おそらく Decorator (インターフェイスを維持しながら機能を追加する) または Proxy (インターフェイスを維持しながら、オブジェクトが別のオブジェクトの代役として機能する) です。

何らかの方法で Settings.Default.PropertyValues を別のオブジェクトにプロキシして、変更する設定を探し、すべての変更を元のオブジェクトに委任する必要があります。それがシステム全体でできるか、手動で行う必要があるため、すべてのコードで myProxyForSettings.Default.PropertyValues を使用する必要があるかどうかはわかりません。

于 2012-06-30T06:08:17.060 に答える