美文网首页
移动端开发设计模式

移动端开发设计模式

作者: zhuxu | 来源:发表于2019-08-26 15:12 被阅读0次

MVC、MVP、MVVM

  • 功能模块化 —— 内部高聚合、模块功能低耦合
  • 提高开发效率——视图显示、业务处理、数据处理
  • 提高测试效率——方便测试、定位问题

MVC

  • M(Model) ——模型层——业务逻辑/数据存储 ——外观类/接口访问
  • V(View) ——视图层——展示洁面/接收输入 ——XML/Activity
  • C(Controller)——控制层——业务逻辑/连接M&C——Activity
                  1.- UI 变化操作 -
                2.需修改model的数据➡️            2.通知修改➡️
用户输入—— —— ——View —— —— —— —— ——Controller—— —— —— —— ——Model
                      ⬅️修改通知               ⬅️需修改的UI
                       2. --- 直接通知修改Model层的数据 ---
描述:
1.view 接收用户的输入
2.需UI变化操作(不涉及业务的调用)即可直接与Controller交互即可
3.需要修改Model数据,即需要通过Controller才能修改的
   view层可直接更新Model的数据而不必通过Controller
4.Model层数据发生变化,若需要修改UI,则需要通过Controller对View的通知修改UI
缺点:
1.Activity 责任不分明,十分臃肿
2.Activity 由于生命周期的功能处理承担View层的职责(接收用户操作、加载应用布局),还需承担Controller层的职责
3.随着界面增多和逻辑复杂度提高,Activity的代码量增加,更加臃肿

MVP

解决MVC的Activity臃肿问题,分离了Activity重的View层和Controller层的职责,从而对Activity的代码量进行优化、瘦身,所以出现了MVP

  • M(Model) ——模型层——业务逻辑/数据储存——外观类/接口访问
  • V (View) ——视图层——View绘制/用户交互——XML/Activity
  • P (presenter)——呈现层——业务逻辑/连接M&V——接口
                 需修改的Model层实例➡️     通知修改➡️
用户输入—— —— ——View—— —— —— ——Presenter—— —— —— ——Model
                    ⬅️通知修改           ⬅️需修改UI
描述:
1.View层接收用户输入
2.View层与Model交互必须通过Presenter
优点:
1.低耦合,通过Presenter 实现数据和视图层的交互,完全隔离了View和Model层,二者互不干涉
避免了View和Model的直接联系,通过Presenter实现两者沟通
2.Activity代码更加简洁,简化Activity的职责。仅负责UI相关操作,其余复杂的逻辑代码提取到Presenter层

MVVM

为了更加分离Model和View层 ,释放Activity的压力。于是出现了MVVM

  • M(Model) ——模型层——业务逻辑/数据储存——外观类/接口访问
  • V (View) ——视图层——View绘制/用户交互——XML/Activity
  • VM(ViewMode)——View的数据模型和Presenter的结合体
                 修改Model层➡️                         通知修改➡️
用户输入—— —— ——View—— —— ——DataBinding—— —— ——ViewMode—— —— ——Model
                  ⬅️通知修改                          ⬅️需修改UI
优点:
1.View层和Controller层直接耦合程度进一步降低,分离更彻底,减轻了Activity的压力

MVC和MVP的区别

1.层及含义
MVC:V对应的是 布局文件&Activity
MVP:V对应的是Activity,简化了Activity 的职责
2.业务逻辑处理方式
MVC:Controller
MVP:Presenter
3.View与Model的交互
MVC 直接、间接
MVP 必须经过Presenter (完全隔离了View&Model)
4.View与业务逻辑的交互
MVC:Activity(Controller层)
MVP:接口(Presenter层)

三种模式出现的初衷

1.MVC
为解决程序模块化问题,于是MAVC模式出现了,将业务逻辑、数据处理、与界面显示分离出来。即形成了M、V、C层
2.MVP
在MVC模式中,M层和C层还是相互交互,隔离度不够,同时写到Activity使得Activity代码臃肿,于是出现了MVP,隔离了M层和V层直接连接,释放了Activity的压力
3.MVVM
为了更加分离M层和V层,释放Activity的压力,于是出现了MVVM,使得M层和C层的耦合度更加降低,分离了更加彻底,更加减轻了Activity的压力

转自:https://juejin.im/entry/5d632c296fb9a06afc254d58?utm_source=gold_browser_extension

相关文章

  • 移动端开发设计模式

    MVC、MVP、MVVM 功能模块化 —— 内部高聚合、模块功能低耦合 提高开发效率——视图显示、业务处理、数...

  • iOS 标签开发(collectionView)

    前言 目前iOS 移动端开发搜索,或者标签都喜欢用自适应宽度的设计模式,节约布局。目前大多开发都是利用 table...

  • iOS分层架构设计

    大家都知道,在移动设计开发中有很多种模式,最常用的单例设计模式、MVC设计模式、工厂设计模式、KVO、通知、代理等...

  • 移动端开发rem模式开发

    1,通过js来改变html的根目录字体大小来动态改变界面的字体大小来自适应, 2,最好放在全局变量里面,让整个页面...

  • 状态模式

    状态模式定义: Swift、OC开发中,状态模式不多,服务器开发里面、Android移动端系统源码有的->Wifi...

  • 《移动端设计的思维模式》

    《移动端设计的思维模式》 原文地址:Thinking Like An App Designer http://ww...

  • android中webview与js交互

    移动开发中,我们经常会遇到混合开发模式,经常是在移动客户端中增加网页,来减少客户端的压力,同时也让软件更加灵活。废...

  • 移动端开发新趋势Flutter

    移动端开发新趋势Flutter移动端开发新趋势Flutter

  • 微信小程序

    微信小程序移动端商城 参与开发 产品设计 & UI @hyperbolaa 小程序开发 @hyperbol...

  • 100 本改变设计命运的书籍【要坚持读书哦】

    01 平面设计 02 网页设计 03 Web 前端开发 04 移动端UI设计 05 交互 & 用研 06 摄影 &...

网友评论

      本文标题:移动端开发设计模式

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