美文网首页
mvc、mvp、mvvm

mvc、mvp、mvvm

作者: couriravant | 来源:发表于2020-02-10 19:19 被阅读0次

    MVC

    Activity并非标准的Controller,它一方面用来控制了布局,另一方面还要在Activity中写业务代码,造成了Activity既像View又像Controller。
    在Android开发中,就是指直接使用Activity并在其中写业务逻辑的开发方式。显然,一方面Activity本身就是一个视图,另一方面又要负责处理业务逻辑,因此逻辑会比较混乱,Activity负担较重。
    这种开发方式不太适合Android开发。

    MVP

    Model和View不会直接发生关系,它们需要通过Presenter来进行交互。在实际的开发中,我们可以用接口来定义一些规范,然后让我们的View和Model实现它们,并借助Presenter进行交互即可。


    image.png

    MVC 和 MVP 的区别

    MVC 中是允许 Model 和 View 进行交互的,而MVP中,Model 与 View 之间的交互由Presenter完成;

    优点:

    1.降低耦合度,实现了 Model 和 View 真正的完全分离,可以修改 View 而不影响 Modle;
    2.模块职责划分明显,层次清晰;
    3.Presenter 可以复用,一个 Presenter 可以用于多个 View,而不需要更改 Presenter 的逻辑;
    4.利于测试驱动开发,以前的Android开发是难以进行单元测试的;

    缺点:

    Presenter 中除了应用逻辑以外,还有大量的 View->Model,Model->View 的手动同步逻辑,造成 Presenter 比较笨重,维护起来会比较困难;
    由于对视图的渲染放在了 Presenter 中,所以视图和 Presenter 的交互会过于频繁;
    如果 Presenter 过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密,一旦视图需要变更,那么Presenter也需要变更了。

    MVVM

    MVVM 是 Model-View-ViewModel 的简写。它本质上就是 MVC 的改进版。MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。

    image.png

    优点:
    1.View和 model解构
    No tight coupling between the view and view model

    1. view and model 没有那么多接口了
      3.方便单元测试

    缺点:

    You have to create observables for each UI component.

    相关文章

      网友评论

          本文标题:mvc、mvp、mvvm

          本文链接:https://www.haomeiwen.com/subject/spczxhtx.html