一、MVD框架
1.1、MVC设计模式
MVC是一种与用户界面相关的设计模式,通过使用该设计模式,可以有效的分离数据与用户界面。MVC设计模式包含三个元素:表示数据的模型(Model)、表示用户界面的视图(View) 和定义了用户在界面上操作的 控制器(Controller),这三者的主要职责,如下:
- 视图层(View):用户看到并与之交互的界面(例如:网页界面或软件的客户端界面),负责显示模型中的数据
- 模型层(Model):指从现实世界中抽象出来的对象模型,它封装了数据和对数据的操作,是实际进行数据处理的地方
- 控制器(Controller):处理用户交互操作(鼠标事件、键盘事件、用户输入),并调用模型和视图去完成用户的需求。控制器本身不输出任何东西和做任何处理,它只是接收用户交互操作并决定调用哪个模型构件去处理,然后再确定用哪个视图来显示返回的数据。
MVC设计模式的优点:
- 多视图共享一个模型,大大提高了代码的可重用性
- MVC 三个模块相互独立,松耦合架构
- 控制器提高了应用程序的灵活性和可配置性
MVC设计模式的缺点:
- 原理复杂
- 增加了系统结构和实现的复杂性
- 视图对模型数据的低效率访问
通过 MVC 设计模式最终可以打造出一个松耦合+高可重用性+高可适用性的完美架构。但是、MVC 并不适合小型甚至中型规模的项目,花费大量时间将 MVC 应用到规模并不是很大的应用程序,通常得不偿失,所以对于 MVC 设计模式的使用要根据具体的应用场景来决定。
1.2、MVD模型
与MVC设计模式类似、Qt引入了模型/视图结构用于完成界面与数据分离。但是不同的是,Qt的模型/视图结构把视图与控制器部件结合在一起,使得框架更加的简洁。为了灵活的处理用户输入,Qt的模型/视图框架引入了代理(Delegate),通过使用代理,能够自定义数据条目(item)的显示和编辑方式,上图就是MVD架构图,如上: