美文网首页
浅谈MVC/MVP/MVVM(Android)架构设计模式

浅谈MVC/MVP/MVVM(Android)架构设计模式

作者: 被时光移动的城 | 来源:发表于2017-07-14 13:30 被阅读174次

    一、MVC

       Android常用的开发模式有MVC、MVP及MVVM,发展到今天,主流的开发模式是MVP,但是MVP其实也是对MVC的一种演变。

    A、MVC定义

      MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件的设计典范。它是用一种业务逻辑、数据、界面显示分离的方法组织代码。

    好处:UI界面的显示与业务逻辑的分离。

    Android当中:

    1.M:业务逻辑处理(数据的数据源有三种:内存,磁盘(文件或数据库等),网络等)

    2.V:处理数据显示的部分(应用层处理数据显示的部分,xml布局可视为view层)

    3.C:Activity处理用户交互问题(读取view层视图数据,然后数据交给界面显示)

    B、MVC特点

    1.耦合性低

    2.可扩展性好

    3.模块指责划分明确

    C、MVC总结

    1.利用MVC设计模式,使得项目有了很好的扩展性和维护性;

    2.contronller(控制器)是中间桥梁的作用;

    3.什么时候适合使用MVC设计模式?

    一般用在比较大的设计项目当中,业务逻辑处理比较复杂,迭代需求频繁,页面显示比较多时使用。

    可参考:框架模式 MVC 在Android中的使用

    二、MVP

    MVC中的Activity承担的责任太多,而MVP减轻了Activity的责任,将activity中业务逻辑抽出来,将一些复杂代码抽到presenter中进行处理,耦合性更加低。目前主流的开发模式是MVP。

    MVP全名是Model-View-Presenter ,MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。

    M:依然是业务逻辑和实体模型

    V:对应于Activity,负责View的绘制以及与用户交互

    P:负责完成View于Model间的交互

    MVP&MVC

    相对于MVC可以看出,MVP的M层数据不会和视图层V直接进行交互,而是通过Persenter层这个中介进行交互。

    可参考:浅谈Android中的MVP

    三、MVVM


    MVVM

    View:对应于Activity和xml,负责View的绘制以及与用户交互,不做业务逻辑相关的操作

    Model:实体模型(数据的获取、存储和变化,提供数据接口供viewmoel层调用)

     ViewModel:负责完成View与Model交互,负责业务逻辑(不会持有认可控件的引用,也不会更新UI,这些全都由view层处理)

    可参考:Android-MVVM架构-Data Binding的使用

    相关文章

      网友评论

          本文标题:浅谈MVC/MVP/MVVM(Android)架构设计模式

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