MVC(Model-View-Controller)是模型-视图-控制器,它的目的是够清晰地分离程序中的逻辑部分与用户交互部分。
模型(Model)包含关于应用程序的信息,它拥有所有由应用程序处理的数据。当出现新的数据,它将告知控制器,后者要求View来显示新的结果。通常,模型将集合多个算法,它们很有可能按照策略模式进行实现。所有这些算法都是模型的一部分。
视图(View)对应于用户界面。它是由不同的控件组成的,这些控件向用户显示数据,并允许用户与应用程序交互。它的职责之一是发送用户的命令到控制器。当新数据可用时,它也会刷新自己以显示新的信息。
控制器(Controller)将视图和模型桥接在一起。它接收视图请求,将其转化为模型中的合适方法。它也会在模型更改状态时得到通知,并因此请求视图刷新以显示新的信息。
下面举一个Qt简单处理图像的例子。这个界面如下所示。本程序CowisColorDetectController类为控制器,该类我设置为单例模式,本程序只是简单的处理,所以没有考虑线程安全问题。CowisColorDetectController桥接这用户界面和底层的数据处理。
处理后的效果如下所示:
程序下载代码在https://download.csdn.net/download/yangxueyangxue/10501028