寫在前面,以前作過一段時間移動開發,後來由於工做緣由擱淺了,最新從新拿起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架構能讓你更快的接觸最新的設計思路和方法,例如下降開發複雜度,提升代碼的複用率等等之類。mvc