# 概念
开发用户界面时,一个常见模式是将数据的表示与可视化分开。这使得可以根据用户正在执行的任务以不同的方式显示相同的数据。例如,电话簿可以以垂直文本条目的列表排列,或用图片网格展示。在这两种情况下,数据是相同的:电话簿,但看起来却不同。这种划分通常称为模型视图模式(model-view pattern)。在这种模式中,数据被称为模型(model),而可视化由视图(view)处理。
在QML中,模型和视图由代理连接起来。职责划分如下: 模型提供数据。每个数据项,可能包括多个值。在上面的例子中,每个电话簿条目都有一个名字、一张图片和一个号码。数据排列在一个视图中,其中每项都使用代理进行可视化。视图的任务是排列代理,而每个代理向用户显示一个模型项的值。
这意味着代理知道模型的内容以及如何对其可视化。视图知道委托的概念以及如何排布它们。模型只知道它所代表的数据。