在使用中胸梆,我發(fā)現(xiàn)大家對(duì)于 MVVM 以及 MVVM 衍生出來(lái)的框架(比如 ReactiveCocoa)有一種「敬畏」感。這種「敬畏」感某種程度上就像對(duì)神一樣扫责,這主要表現(xiàn)在我沒(méi)有聽到大家對(duì)于 MVVM 的任何批評(píng)榛鼎。
我感覺(jué)原因首先是 MVVM 并沒(méi)有很大程度上普及,大家對(duì)于新技術(shù)一般都不熟,進(jìn)而不敢妄加評(píng)論者娱。另外抡笼,ReactiveCocoa 本身上手的復(fù)雜性,也讓很多人感覺(jué)到這種技術(shù)很高深難懂黄鳍,進(jìn)而加重了大家對(duì)它的「敬畏」推姻。
MVVM 的作用和問(wèn)題
MVVM 在實(shí)際使用中,確實(shí)能夠使得 Model 層和 View 層解耦框沟,但是如果你需要實(shí)現(xiàn) MVVM 中的雙向綁定的話拾碌,那么通常就需要引入更多復(fù)雜的框架來(lái)實(shí)現(xiàn)了。
對(duì)此街望,MVVM 的作者 John Gossman 的 批評(píng) 應(yīng)該是最為中肯的校翔。John Gossman 對(duì) MVVM 的批評(píng)主要有兩點(diǎn):
第一點(diǎn):數(shù)據(jù)綁定使得 Bug 很難被調(diào)試。你看到界面異常了灾前,有可能是你 View 的代碼有 Bug防症,也可能是 Model 的代碼有問(wèn)題。數(shù)據(jù)綁定使得一個(gè)位置的 Bug 被快速傳遞到別的位置哎甲,要定位原始出問(wèn)題的地方就變得不那么容易了蔫敲。
第二點(diǎn):對(duì)于過(guò)大的項(xiàng)目,數(shù)據(jù)綁定需要花費(fèi)更多的內(nèi)存炭玫。
某種意義上來(lái)說(shuō)奈嘿,我認(rèn)為就是數(shù)據(jù)綁定使得 MVVM 變得復(fù)雜和難用了。但是吞加,這個(gè)缺點(diǎn)同時(shí)也被很多人認(rèn)為是優(yōu)點(diǎn)裙犹。