官术网_书友最值得收藏!

1.1 Android開發架構的發展歷程

互聯網技術日新月異,越來越多優秀的開發工程師開始追尋更高效率的開發模式,因此,不斷涌現出新的軟件開發模式,其中MVC、MVP以及MVVM這三種模式一直是軟件行業爭論的焦點。下面就分別來看一下這三種開發模式在Android應用開發中是如何應用的吧。

1. MVC

MVC的全稱是Model-View-Controller,即模型–視圖–控制器,Model負責數據的管理,View負責UI的顯示,Controller負責邏輯控制。在Android中充當視圖層角色的是各種xml文件,充當邏輯控制層角色的是Activity或者Fragment,充當模型層的是網絡請求等部分。MVC框架邏輯如圖1-1所示。

012-1

圖1-1 MVC框架邏輯

由于XML的能力較弱,在實際項目中數據設置一般都是在Activity或Fragment中完成的,因此導致Activity既充當了Controller層又充當了View層,且Controller層需要調用Model層獲取數據,從而導致絕大多數的任務都是在Controller中完成的,這也就使得Controller層不易維護,因為Model層與View層耦合性較高,容易牽一發而動全身。

2. MVP

MVP的全稱是Model-View-Presenter,Model負責數據的管理,View負責UI的顯示,Presenter負責邏輯控制,但是與MVC不同的是,MVP改變了通信方向,View層和Model層不再直接通信,而是通過Presenter層作為“中間人”,MVP框架邏輯如圖1-2所示。

012-2

圖1-2 MVP框架邏輯

View層產生事件,通知Presenter層,Presenter層則通知Model層更新數據,Model層更新數據后,返回并通知Presenter層,Presenter層再通知View層更新界面。MVP相比于MVC的好處顯而易見,即將View層與Model層解耦,使得每一層的職責更清晰、明確。但MVP作為“中間人”,需要借助接口回調的方式轉發消息,從而導致接口類文件增多,且實現類無法避免許多無用的空實現。

3. MVVM

其實MVP已經算是一種很好的開發模式了,MVVM模式則相當于MVP的一種改進版本,MVVM的全稱是Model-View-ViewModel,要注意的是,這里的ViewModel并不能直接與Jetpack中的ViewModel組件劃等號。

ViewModel中有一個Binder,在不同系統的MVVM開發模式中對Binder有不同的實現,比如前端開發中的Vue.js或iOS開發中的RAC,而在Android開發中充當Binder角色的則是Jetpack組件中的DataBinding,Binder的作用就是替代MVP中Presenter層的“中間人”角色。此模式會將View和ViewModel層完全解耦,從而使得職責劃分更清晰,MVVM框架邏輯如圖1-3所示。

013-1

圖1-3 MVVM框架邏輯

MVVM開發模式是當前Google最推薦的開發模式,為了便于使用MVVM開發模式,Google還打造了一套工具集——Jetpack。

主站蜘蛛池模板: 神池县| 临漳县| 封开县| 城口县| 行唐县| 辰溪县| 霍林郭勒市| 崇州市| 喀什市| 左权县| 福建省| 沾益县| 岚皋县| 安康市| 永修县| 邹平县| 当涂县| 视频| 镇坪县| 怀集县| 盘锦市| 灵丘县| 合川市| 璧山县| 棋牌| 陆丰市| 汾阳市| 麻江县| 都昌县| 浦东新区| 曲松县| 永城市| 崇文区| 枣庄市| 钦州市| 伊通| 仪征市| 平乐县| 海晏县| 巴林左旗| 旌德县|