文章目录
  • 1. MVC
  • 2.MVP
  • 3. MVVM
  • 4. 总结
  • 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。

    Fork me on GitHub