亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

說(shuō)說(shuō)MVVM

kid143 / 1366人閱讀

摘要:寫(xiě)在前面關(guān)于軟件架構(gòu)模式確切的說(shuō)是一種軟件編碼規(guī)范或者軟件開(kāi)發(fā)模式,這幾年罵戰(zhàn)不斷。由微軟架構(gòu)師和開(kāi)發(fā),通過(guò)利用微軟圖形系統(tǒng)和的互聯(lián)網(wǎng)應(yīng)用派生品的特性來(lái)簡(jiǎn)化用戶界面的事件驅(qū)動(dòng)程序設(shè)計(jì)。微軟的和架構(gòu)師之一于年在他的博客上發(fā)表了。

寫(xiě)在前面

關(guān)于軟件架構(gòu)模式(確切的說(shuō)是一種軟件編碼規(guī)范或者軟件開(kāi)發(fā)模式),這幾年罵戰(zhàn)不斷。爭(zhēng)論的焦點(diǎn)主要是在MVC、MVVM、MVP哪種架構(gòu)最好,哪種架構(gòu)才是最牛逼的、擴(kuò)展性更強(qiáng)的、可維護(hù)性更高的。筆者不才,在實(shí)際項(xiàng)目中很少用過(guò)MVP架構(gòu),對(duì)于MVP的掌握也是只停留在寫(xiě)寫(xiě)Demo階段。本篇文章主要著重介紹下MVVM架構(gòu)在真實(shí)項(xiàng)目當(dāng)中的應(yīng)用,以及拋開(kāi)RAC,我們?nèi)绾巫约簞?dòng)手寫(xiě)一個(gè)View和ViewModel之間的綁定框架。

MVVM掃盲

MVVM(Model–View–Viewmodel)是一種軟件架構(gòu)模式。

MVVM有助于將圖形用戶界面的開(kāi)發(fā)與業(yè)務(wù)邏輯或后端邏輯(數(shù)據(jù)模型)的開(kāi)發(fā)分離開(kāi)來(lái),這是通過(guò)置標(biāo)語(yǔ)言或GUI代碼實(shí)現(xiàn)的。MVVM的視圖模型是一個(gè)值轉(zhuǎn)換器, 這意味著視圖模型負(fù)責(zé)從模型中暴露(轉(zhuǎn)換)數(shù)據(jù)對(duì)象,以便輕松管理和呈現(xiàn)對(duì)象。在這方面,視圖模型比視圖做得更多,并且處理大部分視圖的顯示邏輯。 視圖模型可以實(shí)現(xiàn)中介者模式,組織對(duì)視圖所支持的用例集的后端邏輯的訪問(wèn)。

MVVM是馬丁·福勒的PM(Presentation Model)設(shè)計(jì)模式的變體。 MVVM以相同的方式抽象出視圖的狀態(tài)和行為,但PM以不依賴于特定用戶界面平臺(tái)的方式抽象出視圖(創(chuàng)建了視圖模型)。 MVVM和PM都來(lái)自MVC模式。

MVVM由微軟架構(gòu)師Ken Cooper和Ted Peters開(kāi)發(fā),通過(guò)利用WPF(微軟.NET圖形系統(tǒng))和Silverlight(WPF的互聯(lián)網(wǎng)應(yīng)用派生品)的特性來(lái)簡(jiǎn)化用戶界面的事件驅(qū)動(dòng)程序設(shè)計(jì)。 微軟的WPF和Silverlight架構(gòu)師之一John Gossman于2005年在他的博客上發(fā)表了MVVM。

MVVM也被稱為model-view-binder,特別是在不涉及.NET平臺(tái)的實(shí)現(xiàn)中。ZK(Java寫(xiě)的一個(gè)Web應(yīng)用框架)和KnockoutJS(一個(gè)JavaScript庫(kù))使用model-view-binder。

以上內(nèi)容均來(lái)自維基百科。MVVM wikipedia。

簡(jiǎn)單的講,MVVM是MVC的改進(jìn)版。我們都知道MVC軟件架構(gòu)模式是蘋(píng)果推薦的開(kāi)發(fā)模式。

MVC中的M就是單純的從網(wǎng)絡(luò)獲取回來(lái)的數(shù)據(jù)模型,V指的我們的視圖界面,而C就是我們的ViewController。

在其中,ViewController負(fù)責(zé)View和Model之間調(diào)度,View發(fā)生交互事件會(huì)通過(guò)target-action或者delegate方式回調(diào)給ViewController,與此同時(shí)ViewController還要承擔(dān)把Model通過(guò)KVO、Notification方式傳來(lái)的數(shù)據(jù)傳輸給View用于展示的責(zé)任。***隨著業(yè)務(wù)越來(lái)越復(fù)雜,視圖交互越復(fù)雜,導(dǎo)致Controller越來(lái)越臃腫,負(fù)重前行。臟活累活都它干了,到頭來(lái)還一點(diǎn)不討好。福報(bào)修多了的結(jié)果就是,不行了就重構(gòu)你,重構(gòu)不了就換掉你。***

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/7015.html

相關(guān)文章

  • Vue核心50講 | 第一回:Vue 與 MVVM 之間那些事兒

    摘要:在說(shuō)真正的內(nèi)容之前,咱們還要先來(lái)說(shuō)說(shuō)與之間的那些事兒。的核心庫(kù)只關(guān)注視圖層,不僅易于上手,還便于與第三方庫(kù)或既有項(xiàng)目整合。高效核心庫(kù)文件壓縮之后只有,遠(yuǎn)比的壓縮版文件小得多。這么說(shuō)還是會(huì)比較抽象,接下來(lái)咱們用代碼來(lái)進(jìn)一步解釋和之間的關(guān)系。 書(shū)接上文,上一回咱們說(shuō)到了如今的前端江湖早已是框架三分天下的格局。接下來(lái),咱們就要說(shuō)到主角 Vue 了。在說(shuō)真正的 Vue 內(nèi)容之前,咱們還要先來(lái)說(shuō)...

    chanthuang 評(píng)論0 收藏0
  • MVVM_Android-CleanArchitecture

    摘要:業(yè)務(wù)層,業(yè)務(wù)層,是最為核心的一層。對(duì)于和的狀態(tài)保存恢復(fù)也通過(guò)處理。對(duì)于的綁定操作和命令操作都是暴露的,也易于測(cè)試。需要注意的是標(biāo)簽的節(jié)點(diǎn)中要使用到根節(jié)點(diǎn)中標(biāo)簽里設(shè)置的的話需要這樣設(shè)置抽象類中設(shè)置了和注解,只起到清晰提醒作用。 原文發(fā)表于:Rockos blog(rocko.xyz)] - MVVM_Android-CleanArchitecture 前言 Architecture is...

    icattlecoder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<