MVC、MVP和MVVM模式介绍
MVC
MVC是Android开发自带系统框架,也是最经典的架构,由Model、View、Controller三大块组成。结构为Controller->Model->View->Controller(闭环)。
由于View是依赖Model的,并且显示层也有部分逻辑处理,导致高耦合,令人诟病。
MVP
MVP由Model、View、Presenter三大块组成。结构为View<->Presenter<->Model
View与Model之间进行状态分离,View不再依赖Model,而是使用Presenter进行总体控制,获取数据Model,展现视图View。
因此View得以复用,耦合度也显著降低。
但问题也是显而易见的,P中管理M和V,如果业务复杂,则P需要维护大量接口,造成代码臃肿。在小型项目中,甚至比MVC架构的代码还多。
MVVM
MVVM由Model-View-ViewModel三大块组成。结构为Model<->ViewModel<->View
这个ViewModel中封了包括逻辑和界面的接口。比较有意思的是,采用了数据绑定(Data Binding)、依赖属性(Dependency Property)、命令(Command)、路由事件(Routed Event)等新特性,使架构更加灵活。
不过目前大部分框架都是MVP+databinding的形式,MVVM还是比较少见。
总结
模式框架都是浮云,重要的是解决问题,比如如何解耦、如何使架构更加灵活、如何提高模块复用、如何简化开发etc。