比较鸿蒙应用中MVVM与MVP模式在处置处罚数据流、相应用户变乱以及职责分别 ...

打印 上一主题 下一主题

主题 1610|帖子 1610|积分 4830

鸿蒙应用中MVVM与MVP模式的异同比较:

数据流处置处罚:


  • MVVM

    • 数据流从Model流向ViewModel,通过数据绑定机制(如ObservableField、LiveData等)主动同步到View。ViewModel持有Model的引用,监听数据变革并更新内部状态,View通过绑定这些状态属性实现主动革新。
    • 数据反向流动(用户输入或View变乱触发的数据更新)通常通过Command模式或数据绑定中的双向绑定机制,直接将View的变乱传递给ViewModel处置处罚,ViewModel再调用Model进行数据修改。
    • MVVM模式强调数据驱动,数据变革主动驱动视图更新,减少了手动利用DOM或更新UI的工作。

  • MVP

    • 数据流从Model流向Presenter,Presenter处置处罚完业务逻辑后,通过接口回调或者持有View引用的方式主动通知View更新。
    • 用户输入或View变乱起首被View捕捉并转发给Presenter,Presenter处置处罚变乱并调用Model获取或更新数据,之后再通过View接口将新的数据或指令传递回View进行展示。
    • MVP模式中,数据流的传递更显式,Presenter扮演协调者的角色,负责手动推动数据到View进行更新。

相应用户变乱:


  • MVVM

    • 用户变乱(如按钮点击、滑动等)通常在View中声明并通过数据绑定直接关联到ViewModel的方法或属性上。ViewModel中对应的处置处罚函数实行业务逻辑,并可能触发Model层数据变动,由于数据绑定的存在,View会主动相应这些变革。
    • 变乱处置处罚逻辑在ViewModel中会合管理,View仅负责触发变乱和展示结果,保持轻量级。

  • MVP

    • 用户变乱在View层被捕捉后,通过接口方法传递给Presenter。Presenter根据变乱范例实行相应的业务逻辑,可能涉及Model层交互,然后调用View的接口方法告知其更新UI或实行特定动作。
    • MVP模式中,View与Presenter通过明确的接口进行通信,View不直接处置处罚业务逻辑,而是将变乱委托给Presenter,Presenter负责具体的相应逻辑。

职责分别:


  • MVVM

    • Model:负责数据的存储、业务逻辑处置处罚和数据提供,对View和ViewModel透明。
    • View:负责UI展示,通过数据绑定与ViewModel创建联系,只关心如何表现数据和相应用户交互,不包罗任何业务逻辑。
    • ViewModel:作为View的逻辑封装,持有Model数据的副本或引用,处置处罚业务逻辑和数据转换,提供可供View绑定的公开属性和下令接口,使得View能主动相应数据变革。

  • MVP

    • Model:与MVVM中的Model角色相同,负责数据和业务逻辑。
    • View:同样负责UI展示,但不直接与Model交互。View通过接口袒露自身的利用方法供Presenter调用,同时实现Presenter定义的接口以吸收更新指令。
    • Presenter:持有View和Model的引用,负责业务逻辑处置处罚、数据调理以及控制View的行为。Presenter吸收到View的变乱后处置处罚并调用Model,再根据Model的反馈更新View。

总结:


  • 异同点

    • 相同:两者都遵循分层架构原则,将业务逻辑、数据处置处罚与UI展示分离,都有Model层负责数据和业务逻辑,View层专注于UI呈现。
    • 不同

      • 数据流:MVVM通过数据绑定实现主动数据同步,数据变革主动驱动视图更新;MVP则需要Presenter手动将数据推送给View更新。
      • 变乱处置处罚:MVVM中用户变乱直接绑定到ViewModel,处置处罚逻辑在ViewModel内;MVP中变乱由View传递给Presenter,Presenter处置处罚后再回调View更新。
      • 职责分别:MVVM中ViewModel作为View的逻辑代理,简化View并实现数据驱动;MVP中Presenter更像是协调者,通过接口与View交互,控制View的行为。


在鸿蒙应用开发中,选择MVVM还是MVP模式取决于具体项目需求、团队习惯以及对主动化数据同步、代码可测试性、复杂度管理等方面的偏好。MVVM由于其数据绑定特性,通常被以为更得当构建复杂的、数据驱动型的应用,而MVP在保持清晰职责分别的同时,可能更得当需要高度控制UI更新流程或器重接口契约清晰性的场景。
为了能让各人更好的学习鸿蒙(HarmonyOS NEXT)开发技能,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对各人有所资助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05


  • 基本概念
  • 构建第一个ArkTS应用
  • ……

开发基础知识:https://qr21.cn/FV7h05


  • 应用基础知识
  • 配置文件
  • 应用数据管理
  • 应用安全管理
  • 应用隐私保护
  • 三方应用调用管控机制
  • 资源分类与访问
  • 学习ArkTS语言
  • ……

基于ArkTS 开发:https://qr21.cn/FV7h05


  • Ability开发
  • UI开发
  • 公共变乱与通知
  • 窗口管理
  • 媒体
  • 安全
  • 网络与链接
  • 电话服务
  • 数据管理
  • 后台任务(Background Task)管理
  • 设备管理
  • 设备使用信息统计
  • DFX
  • 国际化开发
  • 折叠屏系列
  • ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH


鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表