Android最佳架构:MVI + LiveData + ViewModel | ProAndroidDev

本文探讨了如何结合MVVM和MVI架构模式,提出了一种适用于Android应用的最佳架构——MVI + LiveData + ViewModel。通过在MVVM中引入一个实际的模型层,解决了状态重叠问题,确保单向数据流和视图状态的一致性。作者建议使用ViewState、ViewEffect和ViewEvent这三个类,并提供了抽象基类AacMviViewModel简化视图和ViewModel的实现。文章还讨论了可能的改进方向,并分享了Android开发的相关资源。
摘要由CSDN通过智能技术生成

在这里插入图片描述

MVVM和MVI架构模式合并为一个最好的架构,为任何Android项目提供了完美的架构。

有太多可用的体系结构模式,每种模式都有其优缺点。所有这些模式都试图实现相同的架构基本原理:

1、关注点分离(SoC):这是一种设计原则,用于将计算机程序分为不同的部分,以便每个部分都可以解决一个单独的关注点。关注点是提供问题解决方案时重要的事情。

该原则与面向对象编程的“ 单一责任原则”密切相关,后者 指出“每个模块,类或功能都应对软件提供的功能的一部分负责,而责任应由第三方完全封装。类,模块或功能。”

2、由模型驱动的UI :应用程序应从模型(最好是持久性模型)驱动UI。模型独立于View对象和应用程序组件,因此它们不受应用程序生命周期和相关问题的影响。

让我们来看看一些流行的架构模式的总结:

MVC架构
Trygve Reenskaug的模型-视图-控制器体系结构是所有现代体系结构模式的基础。让我们看看在Wikipedia页面上定义的每个组件的责任

模型负责管理应用程序的数据。它从控制器接收用户输入。
视图表示以特定格式表示模型。
控制器响应用户输入并在数据模型对象上执行交互。所述控制器接收输入,任选验证它,然后将输入到模型。
因此,模型负责表示视图的状态,结构和行为,而视图仅表示该模型。

MVVM架构
在Model-View-ViewModel体系结构中,视图具有ViewModel的实例,并且它根据用户输入/操作调用相应的函数。此外,视图会观察ViewModel的不同可观察属性以进行更改。ViewModel根据业务逻辑处理用户输入,并修改各自的可观察属性。

MVI架构
在Model-View-Intent体系结构中,视图公开视图事件(用户输入/操作),并观察模型以了解视图状态的变化。我们处理视图事件,并将其转换为各自的意图,并将其传递给模型。模型层使用intent和previous view-state创建一个新的不可变视图状态。因此,这种方式遵循单向数据流原理,即数据仅在一个方向上流动:“视图”>“意图”>“模型”>“视图”。

总而言之,MVVM体系结构的最佳部分是ViewModel,但我认为它

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值