最近在學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的概念
請問我的理解對嗎?