Android _ MVVM 设计模式的一种实现方式,最新BAT大厂面试者整理的Android面试题目

本文翻译自 Christopher Elias 的文章,探讨 Android 中的 MVVM 设计模式,介绍如何通过 State 类处理数据获取和界面渲染,结合 Jetpack 的 ViewModel 和 LiveData。通过示例代码展示了一个简单的数据获取与显示的实现,强调了 Model 对状态管理的重要性。同时,文章也适合作为 Android 面试的复习资料。
摘要由CSDN通过智能技术生成

前言

首先表明,这篇博客 80% 的内容是翻译自 Christopher Elias 的文章 《Understanding MVVM pattern for Android in 2021》。作者的原文题目翻译过来是 《理解 2021 年适用于 Android 的 MVVM 模式》,怕被喷标题党(因为感觉这个题目略大),所以我不太敢直接用原文题目Orz

本着尊重原创的精神,我是征得原作者同意后才敢翻译的,喏↓↓↓↓↓↓↓↓

image.png

网上介绍 MVVM 的文章有很多,讲得也都很棒!既然网上已经有那么多介绍 MVVM 的文章了,为什么我还是想要翻译这篇呢?

这篇文章它最吸引我的地方在于,作者在数据的获取到将数据渲染到界面的过程中抽象出了一个 State 类,将获取数据后的所有可能结果都封装到这个 State 类中,有很好的高内聚低耦合性,并且结合 Jetpack 组件中的 ViewModel、LiveData 简直不要太好用!所以我想要将这篇文章翻译成中文,一来是希望通过笔记的形式加深自己的印象,二来呢也是希望能让更多人看到这一优秀的实现方式。

基于我的理解,实现了一个小 demo。需求很简单,打开 APP,模拟从网络获取数据(一个水果名 List),并渲染到界面上,如下图。这里给出我的实现

Animation.gif

这里同时贴出 Christopher Elias实现。这是一个大的项目,其中包含了这种实现方式,如果只是想要理解这种设计方式,我觉得看我的实现应该就足够了。Chris 的代码对于不熟悉 Kotlin 的人(譬如我)可能有点难以理解,他用到很多 Kotlin 的高级特性,代码写的非常漂亮,读一读大佬的实现还是可以学到一些东西的。

好啦,那废话不多说,我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值