0

我开始使用 GTK+ 编写我的第一个 C 程序。我在一定程度上学习了 C,并且使用过 PyGTK,所以我对两者都有很好的理解。但是,我从来没有用 C 创建过 GUI 程序。虽然它可以工作,但我的最后一个 GUI 程序有点乱,因为程序逻辑都混入了 GUI 的东西。我读过最好以分离的方式编写 GUI 和程序逻辑,这样如果你切换 GUI 库,它就会很轻松。

这是正确的吗?假设我正在向视觉列表中添加一个项目。我是否有一个将项目添加到逻辑列表并在查看该列表然后更新 gui 的函数中运行的函数?

例如,

void new_item_button_handler()
{
  add_item_to_array() /* Code dealing with program logic*/
  /*
   * Code here to look at array and update visual list using GUI commands
   */
}

这样做的一般过程是什么?

任何意见,将不胜感激!

编辑:

感谢您提供有关 MVC 的建议。您能否在我给出的示例中解释一下?那里有很多关于 MVC 的信息,我很难弄清楚它如何应用于我的代码示例。

4

2 回答 2

3

我认为您正在寻找模型-视图-控制器设计模式。

于 2010-08-31T17:02:58.350 回答
3

传统上,这是通过 MVC 模式解决的。但是,如果您不遵守纪律,您将看到业务逻辑潜入您的视图层。

尽可能设计你的包结构,使所有东西都整齐地融入模型、视图和控制器包中。确保您有良好定义的接口,用于在包之间共享数据。尽一切努力设计包,使每个单独的包都可以测试并且大部分可用,而不依赖于其他包 2。

我还鼓励您查看 IOC 模式。这将有助于将所有包连接在一起。当您需要模拟一些存根类以独立于其他 2 个包来测试 1 个包时,它在测试期间也会有所帮助。IOC 是应用程序的“接线”,它允许您混合和匹配对象。

于 2010-08-31T17:33:36.220 回答