是否存在面向对象的设计范例,允许变量GUI和数据模型?

时间:2011-02-19 08:18:58

标签: oop variation

我的骰子模拟器在几个方面让我烦恼,都与面向对象的设计有关:

  • 用户选择的骰子测试会影响应该在用户界面中显示的内容以及应该构成代表测试数据的对象的一部分
  • 用户对测试参数的选择会影响应在用户界面中显示的内容以及应该构成代表测试数据的对象的一部分

换句话说,我的GUI是可变的,我的数据模型是可变的 - 它们都依赖于用户输入中收到的许多潜在条件。我用来处理变化的传统方法是switch和if语句,但这些方法令人困惑,笨重和嵌套。

是否存在面向对象的设计范例,允许GUI和模型的变化?

2 个答案:

答案 0 :(得分:1)

与大多数问题一样,解决方案是添加更多抽象层:)

Have a look at MVC, MVP and MVVM*。这些模式旨在分离UI和数据之间的职责。因为您希望在模型(数据)和UI(视图)之间切换运行时,您可能需要创建一个额外的抽象,一个契约,以允许任何视图绑定到任何(或特定的子集)数据。

*此链接绝对不是唯一的来源,但搜索网络(当然还有Stack Overflow)将帮助您掌握这些模式。

答案 1 :(得分:0)

最受欢迎的三个:

MVC if web MVP如果桌面 MVVM

我之前发布了这个并提供了图表:http://carnotaurus.tumblr.com/post/2748019388/visual-pattern-links

我还建议将DAL拆分为两个,以帮助测试目的