1. 程式人生 > >Android與MVC設計模式

Android與MVC設計模式

wikipedia 數據模型 後來 small 事先 wiki 兩個 修改 idt

寫在前面,之前做過一段時間移動開發,後來因為工作原因擱淺了,最新重新拿起Android權威編程指南學習,順道做個學習筆記。

首先呢,我想說無論是計算機科班出身還是培訓班出身,都聽說過高內聚低耦合以及MVC這兩個詞。MVC模式就是為了解決軟件工程過程中內聚與耦合的關系。(維基中查看內聚 耦合的定義)


技術分享

MVC模式(Model–view–controller)是軟件工程中的一種軟件架構模式,把軟件系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。

MVC模式最早由Trygve Reenskaug在1978年提出[1],施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk發明的一種軟件架構。MVC模式

的目的是實現一種動態的程序設計,使後續對程序的修改和擴展簡化,並且使程序某一部分的重復利用成為可能。除此之外,此模式通過對復雜度的簡化,使程序結構更加直觀。軟件系統通過對自身基本部分分離的同時也賦予了各個基本部分應有的功能。專業人員可以通過自身的專長分組:

  • 控制器(Controller)- 負責轉發請求,對請求進行處理。
  • 視圖(View) - 界面設計人員進行圖形界面設計。
  • 模型(Model) - 程序員編寫程序應有的功能(實現算法等等)、數據庫專家進行數據管理和數據庫設計(可以實現具體的功能)。

技術分享

  • 模型(Model) 用於封裝與應用程序的業務邏輯相關的數據以及對數據的處理方法。“ Model ”有對數據直接訪問的權力,例如對數據庫的訪問。“Model”不依賴“View”和“Controller”,也就是說, Model 不關心它會被如何顯示或是如何被操作。但是 Model 中數據的變化一般會通過一種刷新機制被公布。為了實現這種機制,那些用於監視此 Model 的 View 必須事先在此 Model 上註冊,從而,View 可以了解在數據 Model 上發生的改變。
  • 視圖(View)能夠實現數據有目的的顯示(理論上,這不是必需的)。在 View 中一般沒有程序上的邏輯。為了實現 View 上的刷新功能,View 需要訪問它監視的數據模型(Model),因此應該事先在被它監視的數據那裏註冊。
  • 控制器(Controller)起到不同層面間的組織作用,用於控制應用程序的流程。它處理事件並作出響應。“事件”包括用戶的行為和數據 Model 上的改變。

  在Android應用開發中,就是基於最基礎的MVC架構進行設計。

  技術分享  如圖是Android中MVC架構基本模式

  • 模型對象存儲著應用的數據和業務邏輯,為存儲和管理應用數據。
  • 控制器是視圖對象和模型對象的聯系紐帶,管理著模型對象和視圖對象的數據流動,控制著諸如觸發事件之類的響應事件。
  • 視圖對象就是用戶感受到的界面邏輯。

  Android應用設計基礎就是MVC架構,雖然嚴格來說Activity也不簡單的充當controller的角色,以及目前設計模式很多,如mvp,mvvm等但萬變不離其宗。掌握基礎的mvc架構能讓你更快的接觸最新的設計思路和方法,例如降低開發復雜度,提高代碼的復用率等等之類。

Android與MVC設計模式