是否有与memento模式类似的通用方法来制作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();
答案 0 :(得分:1)
相关的设计模式可能是Decorator(您在保留界面时添加功能)或Proxy(一个对象在维护其界面时充当另一个对象的替身)
您需要以某种方式将Settings.Default.PropertyValues与另一个查找要更改的设置的对象进行代理,并将所有更改委托给原始对象。是否可以在系统范围内完成,或者您必须手动完成,因此所有代码都必须使用我不知道的myProxyForSettings.Default.PropertyValues。