Android中採用的MVC架構

來源:互聯網
上載者:User

最近自己準備寫一個demo,準備採用MVC架構來實現。順便檢驗一下5月份學習設計模式的結果。

http://www.moandroid.com/?p=439

MVC是當前比較流行的架構,隨便Google下,就可以發現幾乎所有的應用程式開發中都採用了MVC架構,例如:.NET,Java Spring,Java Struts,PHP 。那麼MVC到底是什麼,為什麼被廣泛使用?

簡要說明下,什麼是MVC。MVC (Model-View-Controller):M是指邏輯模型,V是指視圖模型,C則是控制器。一個邏輯模型可以對於多種視圖模型,比如一批統計資料你可以分別用柱狀圖、餅圖來表示。一種視圖模型也可以對於多種邏輯模型。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程式可以使用不同的表現形式,而C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新,這與《設計模式》中的觀察者模式是完全一樣。具體詳細的解析,可以去閱讀百度知道中介紹的什麼是MVC?

http://zh.wikipedia.org/wiki/MVC(維基百科中的MVC)

採用MVC到底有什麼好處?從使用者的角度出發,使用者可以根據自己的需求,選擇自己合適的瀏覽資料的方式。比如說,對於一篇線上文檔,使用者可以選擇以HTML網頁的方式閱讀,也可以選擇以pdf的方式閱讀。從開發人員的角度,MVC把應用程式的邏輯層與介面是完全分開的,最大的好處是:介面設計人員可以直接參与到介面開發,程式員就可以把精力放在邏輯層上。而不是像以前那樣,設計人員把所有的材料交給開發人員,由開發人員來實現介面。在VS 2008開發工具中設計人員就可以直接通過Silverlight來開發介面,在Eclipes工具中開發Android採用了更加簡單的方法,設計人員在DroidDraw中設計介面,以XML方式儲存,在Eclipes中直接開啟就可以看到設計人員設計的介面。

Android中介面部分也採用了當前比較流行的MVC架構,在Android中M就是應用程式中二進位的資料,V就是使用者的介面。Android的介面直接採用XML檔案儲存的,介面開發變的很方便。在Android中C也是很簡單的,一個Activity可以有多個介面,只需要將視圖的ID傳遞到setContentView(),就指定了以哪個視圖模型顯示資料。

在Android SDK中的資料繫結,也都是採用了與MVC架構類似的方法來顯示資料。在控制層上將資料按照視圖模型的要求(也就是Android SDK中的Adapter)封裝就可以直接在視圖模型上顯示了,從而實現了資料繫結。比如顯示Cursor中所有資料的ListActivity,其視圖層就是一個ListView,將資料封裝為ListAdapter,並傳遞給ListView,資料就在ListView中現實。

目前Android中採用的MVC架構還是比較簡單的,在未來還會不斷完善。Android SDK如果要實作類別似與MFC中視圖/文檔模型(View/Document Model),恐怕還需要等待一些時日,讓我們拭目以待吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.