Android之MVC模式

yangxi_001發表於2013-11-28
MVC (Model-View-Controller):M是指邏輯模型,V是指檢視模型,C則是控制器。一個邏輯模型可以對於多種檢視模型,比如一批統計資料你可以分別用柱狀圖、餅圖來表示。一種檢視模型也可以對於多種邏輯模型。使用MVC的目的是將M和V的實現程式碼分離,從而使同一個程式可以使用不同的表現形式,而C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新,這與《設計模式》中的觀察者模式是完全一樣。

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

       Android中介面部分也採用了當前比較流行的MVC框架,在Android中:

  1) 檢視層(View):一般採用XML檔案進行介面的描述,使用的時候可以非常方便的引入。當然,如何你對Android瞭解的比較的多了話,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作為View層,當然這裡需要進行Java和JavaScript之間的通訊,幸運的是,Android提供了它們之間非常方便的通訊實現。    

  2) 控制層(Controller):Android的控制層的重任通常落在了眾多的Acitvity的肩上,這句話也就暗含了不要在Acitivity中寫程式碼,要通過Activity交割Model業務邏輯層處理,這樣做的另外一個原因是Android中的Acitivity的響應時間是5s,如果耗時的操作放在這裡,程式就很容易被回收掉。

  3) 模型層(Model):對資料庫的操作、對網路等的操作都應該在Model裡面處理,當然對業務計算等操作也是必須放在的該層的。就是應用程式中二進位制的資料。


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

相關文章