gpt4 book ai didi

Android:一个 ViewModel 可以用于多个 Fragment 吗?

转载 作者:行者123 更新时间:2023-12-05 00:18:00 28 4
gpt4 key购买 nike

我有一个关于 Android 应用架构的一般性问题。我正在实现一个具有单个 Activity 和 20 个 fragment (相似但不相同)的应用程序(用 Java 编写)。到目前为止,我在 fragment 中实现了所有内容(UI、逻辑、数据库查询)。现在我正在考虑使用 ViewModel,但我不确定是否值得付出努力。所以我的问题是我的 20 个 Fragment 中的每一个是否应该有一个自己的 ViewModel,或者我是否可以为所有 20 个 Fragment 实现一个 ViewModel?为所有 Fragment 类实现 ViewModel 会大大增加工作量,所以我想知道是否可以为所有 Fragment 只有一个 ViewModel?

最佳答案

技术上可以有一个 ViewModel为所有 Fragment s。
但是,自从这一个 ViewModel必须管理许多非常不同的用例,类似于 god object .有 20 个 fragment ,它会有很多行代码......
切换到 MVVM 通常是值得的,因为从长远来看,该应用程序更容易测试和维护。
拥有 BaseViewModel 可能是个好主意在您的应用程序中:ViewModel处理所有用例中相似事物的类,例如让 Fragment知道它应该显示加载指示器或错误消息。 “正常”ViewModel s 可以扩展 BaseViewModel并专注于他们的用例。
在某些情况下,共享 ViewModel 是有意义的。 ,例如当一个 Fragment显示一个带有一些 EditText 的对话框s 或者当一个人的工作流序列为 3-4 Fragment s 在小型设备上,而在大型设备上,一两个 Fragment s 就足够了。
以防万一,这是我最喜欢的 MVVM 应用架构起点:Guide to app architecture

关于Android:一个 ViewModel 可以用于多个 Fragment 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70316375/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com