介绍MVP,MVVM框架模式

介绍MVP和MVVM的优劣,以及使用场景

MVVM

简单来说就是数据驱动页面

MVVM是由3部分组成(Model,View,ViewModel)

  • 优点

    • 使用MVVM可以使开发者不用专注于更新视图,只需要去专注实现逻辑
  • 缺点

    • 由于View与ViewModel的绑定,使得追踪异常变得十分不方便
    • 数据双向绑定不利于代码的重用,每一个不同的View都需要一个不同的ViewModel
  • 使用场景

    • 在页面复杂、逻辑较多、数据频繁更新的场景,就可以使用MVVM,Activity/Fragment只用将数据展示到控件上去

MVP

MVP本质上就是为了解耦而产生的,分为3部分(Model(管理数据),View(展示数据),Presenter(业务逻辑))

  • 优点

    • 将模型与视图分离,提高了维护性
    • 容易测试,将业务逻辑从Activity/Fragment中抽取出来。可以方便的进行单元测试
  • 缺点

    • 由于对视图的渲染都放在Presenter中,这会导致视图频繁的与Presenter进行交互,一旦视图发现了错误,需要更改,那么更它连着的Presenter也需要进行更改
  • 使用场景

    • 在数据单一,逻辑简单的场景中,使用MVP更好