[問題] 關於QT的M/V架構概念

看板C_and_CPP (C/C++)作者 (DOGE)時間4年前 (2020/11/04 18:48), 編輯推噓1(1010)
留言11則, 1人參與, 4年前最新討論串1/1
最近在學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的概念 請問我的理解對嗎? ----- Sent from JPTT on my Asus ASUS_I01WD. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.10.248 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1604486931.A.AF4.html

11/05 07:20, 4年前 , 1F
safe不safe只是自嗨/讓別人接受這個設計的藉口而已
11/05 07:20, 1F

11/05 07:20, 4年前 , 2F
真的從 safety 的角度下去設計的東西才不會長這樣
11/05 07:20, 2F

11/05 07:20, 4年前 , 3F
但他們免費寫東西給你用,就隨他們講吧,不需要太執著於
11/05 07:20, 3F

11/05 07:20, 4年前 , 4F
這個(因為沒有結果)
11/05 07:20, 4F

11/05 07:20, 4年前 , 5F
你只要知道他們預期你怎麼用他們寫的東西就好了
11/05 07:20, 5F

11/05 07:20, 4年前 , 6F
回你的問題,如果你有一個 type `Dog`,你知道它是動物,
11/05 07:20, 6F

11/05 07:20, 4年前 , 7F
它實際上也有所有身為動物需要的東西,但在一個 nominal
11/05 07:20, 7F

11/05 07:20, 4年前 , 8F
的 type system 下,在你讓他繼承動物以前,它就不是一
11/05 07:20, 8F

11/05 07:21, 4年前 , 9F
個動物
11/05 07:21, 9F

11/05 07:21, 4年前 , 10F
同理,這邊你的 data 不是通過 model 餵給 view,那它就
11/05 07:21, 10F

11/05 07:21, 4年前 , 11F
不是“safe”的 data
11/05 07:21, 11F
文章代碼(AID): #1VeeSJhq (C_and_CPP)
文章代碼(AID): #1VeeSJhq (C_and_CPP)