gpt4 book ai didi

android - MVVM 架构 Android

转载 作者:行者123 更新时间:2023-12-04 00:57:06 26 4
gpt4 key购买 nike

我有一个 Activity 并为其创建了一个 View-model。我创建了不同的类,例如UiUtil(显示、隐藏 View 、隐藏键盘)、网络层、数据库层、AppUtil(用于常见功能,如集合检查、字符串验证、日期转换等)

我的问题是,在 MVVM 设计模式中,Activity 可以直接使用这些实用程序类,或者它需要通过 View 模型使用这些类,如果它通过 View 模型,那么在 View 模型中我必须编写一个方法,只调用实用程序类方法。如下所示,TimeDateManager 是 View 模型中使用的实用程序类
类 HomeViewModel: BaseViewModel()
{
有趣的 prepareTimeAmPmToDisplay(上下文:上下文,警报:警报):字符串
{
返回 TimeDateManager.prepareTimeAmPmToDisplay(上下文,警报)
}
}

最佳答案

架构不是强制性的,它们是推荐性的,因此您可以在相当大的范围内更改它们的用法。唯一的障碍应该是常识(当然如果存在的话)。

在这种特殊情况下,根据您的 ViewModel 构造及其与 View 的通信方式,在 Activity 中使用实用程序类可能没问题>(阅读 Activity)。

例如,如果您有一些 LiveData 在您的 ViewModel 和您的 中发送某种事件(例如从后端或警报触发器加载的数据) View听了一下,我觉得在Activity中的Observer里面使用util类是可以的。特别是如果此 utils 方法不依赖于任何 ViewModelRepository 数据。 Activity 中的直接实用程序用法不受此用例的限制,但还有很多其他用例。

我知道这在现代“干净的方法”中可能是一个不受欢迎的观点,但我相信这种“干净的方法”有时会使不应该的东西复杂化,因此如果稍微混合一些东西不会破坏整体架构但而是让一些东西更具可读性和易于维护 - 我会去做。

希望对你有帮助。

关于android - MVVM 架构 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61582124/

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