用于更改GUI中的程序选项的模式

时间:2011-07-01 02:52:10

标签: user-interface options

我正在为现有命令行应用添加GUI。应用程序使用的属性保存在类中,我正在创建一个绑定到这些选项对象的对话框。但是,如果我想从该对话框中取消,那么我将重置我的选项对象的值,这是我遇到probs的地方。

我可以获取选项对象的内部副本,并使用它来重新填充原始对象以允许取消/回滚,但这似乎很麻烦。

我可以(以某种方式)在每个类上实现一个撤销功能 - 是否有一个模式?

我使用独立的GUI控件来保存值,并且只有在确认对话框后才更新选项对象。

什么是最佳做法?

1 个答案:

答案 0 :(得分:0)

您应该考虑创建一个仅由GUI使用的新类。 GUI有自己的需求。

如果有多个线程访问选项对象,请确保处理多线程问题。

解决撤消功能的设计模式称为Command和Memento。 我认为Memento会更适合这种情况。

在SO上查看这个问题:Design Pattern for Undo Engine

以下链接是感兴趣的(以及更多):

http://www.coderanch.com/t/100676/patterns/Memento-Vs-Command-pattern

http://www.developer.com/design/article.php/3720566/Working-With-Design-Patterns-Memento.htm

http://www.colourcoding.net/blog/archive/2009/07/23/reversibility-patterns-memento-and-command.aspx