成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

說說MVVM

kid143 / 1367人閱讀

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

寫在前面

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

MVVM掃盲

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

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

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

MVVM由微軟架構(gòu)師Ken Cooper和Ted Peters開發(fā),通過利用WPF(微軟.NET圖形系統(tǒng))和Silverlight(WPF的互聯(lián)網(wǎng)應(yīng)用派生品)的特性來簡(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寫的一個(gè)Web應(yīng)用框架)和KnockoutJS(一個(gè)JavaScript庫(kù))使用model-view-binder。

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

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

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

在其中,ViewController負(fù)責(zé)View和Model之間調(diào)度,View發(fā)生交互事件會(huì)通過target-action或者delegate方式回調(diào)給ViewController,與此同時(shí)ViewController還要承擔(dān)把Model通過KVO、Notification方式傳來的數(shù)據(jù)傳輸給View用于展示的責(zé)任。***隨著業(yè)務(wù)越來越復(fù)雜,視圖交互越復(fù)雜,導(dǎo)致Controller越來越臃腫,負(fù)重前行。臟活累活都它干了,到頭來還一點(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://m.hztianpu.com/yun/7015.html

相關(guān)文章

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

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

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

    摘要:業(yè)務(wù)層,業(yè)務(wù)層,是最為核心的一層。對(duì)于和的狀態(tài)保存恢復(fù)也通過處理。對(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)論

閱讀需要支付1元查看
<