Android开发中架构模式--MVC/MVP/MVVM

目录

共同点

不同点

1、MVC

箭头指向(数据流向)

​编辑

优点

缺点

2、MVP

箭头指向(数据流向)

​编辑

优点

缺点

3、MVVM

箭头指向(数据流向)

​编辑

补充在XML文件中设置

补充在APP模块的gradle文件添加数据双向绑定框架

优点

缺点


共同点

架构将整个项目分为 三个模块

  • 视图层 View :UI界面更新和用户交互响应
  • 数据层 Model:数据的获取,处理,存储
  • 业务层:在数据层和视图层之间处理业务逻辑

不同点

1、MVC

箭头指向(数据流向)

实际操作解释:

View中调用Controller中的方法,把方法具体操作逻辑交给Controller实现

Controller中调用Model中的方法,把数据传给Model,让Model去处理数据

Model中调用View中的方法,把数据处理结果,由方法调用来更新UI界面

优点

  • 结构清晰,职责模块化
  • 降低耦合
  • 利于组件重用

缺点

三个模块强耦合,不利于业务需求变更和代码维护工作

Activity/Fragment会承担View和Controller两个角色,比较臃肿

2、MVP

箭头指向(数据流向)

View中调用Presenter中方法处理业务逻辑

Model中方法会有返回值

Presenter中调用Model中方法,获取处理后的返回值

                   调用View中方法,更新UI界面及数据

优点

实现Model和View的解耦

缺点

  • 多接口,项目文件数量多
  • 代码结构复杂

3、MVVM

箭头指向(数据流向)

View中调用ViewModel中的方法处理业务逻辑

XML文件中将绑定属性用"@={      }"赋值

ViewModel中调用Model中方法,让Model处理数据

Model中方法会有返回值

补充在XML文件中设置

补充在APP模块的gradle文件添加数据双向绑定框架

优点

模块间充分解耦(View和ViewModel也进行了解耦)

缺点

  • 代码复杂
  • Debug困难

相关推荐

  1. Android的设计模式

    2024-07-13 02:10:05       32 阅读
  2. Android开发如何从入门进阶到架构

    2024-07-13 02:10:05       33 阅读
  3. Android开发如何进行单元测试?

    2024-07-13 02:10:05       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 02:10:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 02:10:05       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 02:10:05       58 阅读
  4. Python语言-面向对象

    2024-07-13 02:10:05       69 阅读

热门阅读

  1. 十大网站助力人工智能学习之路

    2024-07-13 02:10:05       19 阅读
  2. 【SpringBoot】随机盐值+双重SHA256加密实战

    2024-07-13 02:10:05       20 阅读
  3. 【字符串】tire树 kmp

    2024-07-13 02:10:05       20 阅读
  4. 【TVM 教程】使用 TVM 部署框架预量化模型

    2024-07-13 02:10:05       20 阅读
  5. RabbitMq,通过prefetchCount限制消费并发数

    2024-07-13 02:10:05       20 阅读
  6. C#中的泛型

    2024-07-13 02:10:05       18 阅读
  7. 力扣636.函数的独占时间

    2024-07-13 02:10:05       19 阅读
  8. day19打卡

    2024-07-13 02:10:05       16 阅读
  9. 【qml学习笔记】在qml中连接信号与槽

    2024-07-13 02:10:05       22 阅读