1. 程式人生 > >Android MVP,MVC

Android MVP,MVC

android mvp分層架構優雅寫程式碼:

mvp無非 model(資料)、view(介面)、presenter(邏輯)。model對應本地持久化或遠端服務端資料,而在筆者看來其實就是對應一個bean物件,然而這個bean物件由遠端伺服器或本地持久化而得到,因而此層需封裝網路請求和本地持久化;view對應activity、fragment以及它們對應的xml佈局檔案,這層只負責做ui顯示;presenter對應邏輯處理層,所做的事情很多,包括網路請求操作、讀取快取資料操作、演算法計算等等。

android.  MVC三層分層:

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