Qt应用程序开发中的模型视图控制器

时间:2016-04-15 08:22:56

标签: c++ qt model-view-controller

MVC模式背后的重点是什么?当在设计应用程序时建议使用MVC设计模式时,应用程序的类型是什么?我使用Qt半年,从未使用过MVC,我是否应该使用它?应用程序设计和开发还有哪些其他设计模式?

3 个答案:

答案 0 :(得分:2)

MVC是GUI应用程序核心更常用的设计模式。 与许多架构一样,主要目的是在代码中拆分逻辑和数据,因为它更容易阅读,维护(您会发现很多优点)......

但有一些更具体的东西。 MVC标准是使用Observer/Observable模式,仅在数据更新时刷新视图。不像游戏循环。

关于Qt(> = 4.0),您可以看到here,MVC是框架体系结构的一部分。所以你已经使用它了:不要尝试重新实现它,只需使用它设计的Qt类(参见上面的链接)。

您还可以使用MVVMPureMVC等一些MVC变体扩展架构。

关于其他架构,我喜欢Entity Component System,但它对于小型应用程序来说有点太多了。如果你想了解更多关于设计模式的信息,这个site是一个很好的(可能有点旧)。

答案 1 :(得分:0)

MVC是用于GUI应用程序的模式:它确保您的业务逻辑 - 在[M] odel中 - 与您的GUI分离 - 在[V]视图中。 [C] ontroller确保这两者可以相互通信。

这种脱钩的最大优势之一是您的应用程序将保持可维护性。我可以从个人经验告诉你,一个主要对话框处理几乎所有东西(数据库访问,用户输入验证等)的应用程序真的很难维护。帮助自己,并坚持在应用程序中使用干净的架构,因为这将在其生命周期内得到回报。

另一个GUI应用程序模式是MVVM,有关应用程序模式主题的更多信息,我强烈推荐本书#34;企业应用程序架构模式"作者:Martin Fowler。

答案 2 :(得分:0)

Qt在QtGUI组件中广泛使用了它自己的模型/视图模式,这是对MVC模式的解释。

请点击此处了解更多详情:

http://doc.qt.io/qt-4.8/modelview.html

什么时候应该使用它?理想情况下,尽可能 - 尤其是在处理需要表示大量数据的复杂GUI组件时。 QTableView是我经常使用它的地方。

它为您提供的主要优势很简单,通过松散地耦合您的视图和数据,对一个的更改对另一个的影响最小。这使您的代码在将来更易于维护。