android中的MVC

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中現實。

發佈了20 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章