【问题标题】:Pattern for changing program options in a GUI在 GUI 中更改程序选项的模式
【发布时间】:2011-07-01 02:52:10
【问题描述】:

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

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

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

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

最好的做法是什么?

【问题讨论】:

    标签: user-interface options


    【解决方案1】:

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

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

    解决撤销功能的设计模式称为命令和备忘录。 我认为 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      相关资源
      最近更新 更多