Android 架構簡析
MVC架構
View:對應於佈局檔案
Model:業務邏輯和實體模型
Controllor:對應於Activity
看起來的確像那麼回事,但是細細的想想這個View對應於佈局檔案,其實能做的事情特別少,實際上關於該佈局檔案中的資料繫結的操作,事件處理的程式碼都在Activity中,造成了Activity既像View又像Controller(當然了Data-Binder的出現,可能會讓View更像View吧)。這可能也就是為何,在該文中有一句這樣的話:
Most of the modern Android applications just use View-Model architecture,everything is connected with Activity.
MVP架構
而當將架構改為MVP以後,Presenter的出現,將Actvity視為View層,Presenter負責完成View層與Model層的互動。
View 對應於Activity,負責View的繪製以及與使用者互動
Model 依然是業務邏輯和實體模型
Presenter 負責完成View於Model間的互動
MVC中是允許Model和View進行互動的,而MVP中很明顯,Model與View之間的互動由Presenter完成,Model和View之間並不互動。
還有一點就是Presenter與View之間的互動是通過介面的
缺陷,會增加類和介面的個數
MVVM
說白了就是在xml檔案中可以定義欄位,方法,此時xml檔案充當view的作用,activity充當controll,但是此時xml檔案耦合性太高也不建議使用
RxJava RxAndroid
RxJava最核心的兩個東西是Observables(被觀察者,事件源)和Subscribers(觀察者)。Observables發出一系列事件,Subscribers處理這些事件。這裡的事件可以是任何你感興趣的東西(觸控事件,web介面呼叫返回的資料。。。)
一個Observable可以發出零個或者多個事件,知道結束或者出錯。每發出一個事件,就會呼叫它的Subscriber的onNext方法,最後呼叫Subscriber.onNext()或者Subscriber.onError()
Rxjava的看起來很想設計模式中的觀察者模式,但是有一點明顯不同,那就是如果一個Observerble沒有任何的的Subscriber,那麼這個Observable是不會發出任何事件的。
總結
目前我們專案中使用的是mvc,很混亂,什麼事情都在activity中做,為何不改成MVP架構??
分享下:餓了麼移動APP的架構演進