最近在学QT,看到教学关于model/view的架构有点卡住,不晓得理解对不对
从概念来看,所谓的m/v架构有4个角色
1.data
2.model
3.view
4.delegate
其中的关系为:
a.只有model能对data操作
b.view透过delegate或者model进行rendering
c.只有delegate能对model editing
从结果来看,因为此架构,QT的各个元件能保证资料同步
而我目前卡住的点在于model的部份
以QStringListModel,存放的资料为型态QStringList
但考虑到实作,QStringList就是一种资料结构,本身的data为QString,list也必须实现资料操作的method
也就是说概念上model的定义:提供view的关于data的API部份,QStringList本身就已经实现了
只差在不保证资料同步
我的理解在于,概念上model的定义是一回事,但实际上model的重点应该在保证资料同步上(比如说thread-safe)
也就是说,假设我今天做了一个叫做QStringListDataSafe的东西喂给view
这种状况下,应该也是符合model/view的概念
请问我的理解对吗?