zoukankan      html  css  js  c++  java
  • Android框架模式

    参考大佬写的文章:https://www.jianshu.com/p/f17f5d981de7

    1、MVC模式

    Model:模型层,根据业务模型建立相关的数据类,同时相关的数据库操作和网络也在Model中进行。
    View:视图层,一般用xml文件描述,用于view的展示
    Controller:控制层,负责逻辑业务的处理;连接View层和Model层,完成View层和Model层的交互。

    这么说太抽象了,我们举个栗子:

    点击按钮数字增加
    Model层就是数字的保存和更新,更新通知的是Activity,View层就是对应布局的xml文件,Activity充当Controller层,它接收view层的点击,然后通知model层你该增加了。
    大佬的图特别直观:

    • 优点
      View层和Model层解耦,通过Controller层来进行联系
      职责划分明确,有利于代码的维护
    • 缺点
      Activity除了要连接View层(加载布局、接受用户操作),还要承担Controller层的职责(业务逻辑的处理)。它和View,Model层是有交互的,并没有做到完全分离,会产生耦合。
      界面变多或者逻辑太复杂,Activity会不堪重负。

    2、MVP模式

    大家用的基本上都是它。为了分离Activity中的View层和Controller层,又进一步对Activity做了瘦身。

    Model:模型层,负责存储、检索、操纵数据。
    View:视图层,负责界面数据的展示,与用户进行交互。
    Presenter:呈现层,连接View层和Model层,处理业务逻辑。

    我们还是举这个例子:
    点击按钮数字增加
    Model负责数据的保存和更新,更是通知的是Presenter。(在MVC模式中通知的是Activity,也就是Controller,但是在Actvity中还是和View发生了交互,而这里不会)
    View层是Activity,同时持有Presenter的引用。
    Presenter层是接口,负责业务逻辑处理。

    • 优点
      ① 通过Presenter实现数据与视图之间的交互,完全隔离了View层和Model层。
      ② 对Activity成功进行了瘦身。

    MVC和MVP模式的区别

    3、MVVM模式

    Model:模型层,负责处理数据的加载或存储。
    View:视图层,负责界面数据的展示,与用户进行交互。
    ViewModel:视图模型,负责完成View于Model间的交互,负责业务逻辑。

    这三种模式的定义都差不多,但是它的内部实现不一样。

    • 优点
      Model层和View层耦合进一步降低
    • 缺点
      程序难以调试,界面出现异常时,可能是View的问题,也肯是Model的问题,定位出异常比较困难。
  • 相关阅读:
    PMP工具与技术篇--4.4.1-1 储备分析
    PMP--4.4 规划成本管理--成本管理计划
    PMP--4.3.4-2 进度基准
    PMP工具与技术篇--4.3.4-1 关键路径分析
    PMP--4.3.4-1 项目进度计划
    pip超时问题解决
    BurpSuite插件_sqlipy
    文件上传漏洞
    SSL安全评估工具
    子域名爆破工具
  • 原文地址:https://www.cnblogs.com/dearnotes/p/12310867.html
Copyright © 2011-2022 走看看