gpt4 book ai didi

android - 一个 ViewModel 用于多个 View 还是多个 ViewModel 用于一个 View?

转载 作者:行者123 更新时间:2023-12-03 10:31:37 26 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序来训练玩家的耳朵,让他们在吉他上重播他们从手机上听到的任何声音。我通过以下方式制作了音符(和和弦)识别部分:显示信息并收听按钮的主线程,AsyncTask记录声音并发送要分析的数据和另一个 AsyncTask它分析并确定播放了哪些音符。

音符识别是实时的,所以我放置了分析仪AsyncTaskViewModel .已识别的音符和和弦保存在 LiveData字段,因此每当它们发生变化时,都会通知主线程(由 View 表示)。

现在我正在开发一个使用这种识别的游戏,但我也打算制作一个调谐器。游戏和调谐器将使用相同的识别算法。

我的问题是:我应该如何处理这个问题?游戏和调谐器也将拥有自己的功能。我应该保留分析仪ViewModel独立于单个游戏和调谐器 ViewModels ?这意味着我将使用两个 ViewModels对于这两个中的每一个 Views .我想我不应该在两个 ViewModels 中重复分析器代码。 ,而且我不应该为游戏编写函数对于同一个 ViewModel 中的调谐器,因为会有无用的代码(游戏永远不会使用单独的调谐器功能)。

最佳答案

您的 中应该有您常用的识别算法。 Model 实际上(甚至在独立于 Model 的某些服务层中),而不是在您的 ViewModel . ViewModel被绑定(bind)到 View ,而不是执行诸如笔记识别之类的业务逻辑。

在这种情况下,ViewModel将负责将录音发送到Model ,将它们保存为 LiveData对象。 ViewModel检索它们并将它们暴露给 ViewLiveDataViewModel例如对象。

关于android - 一个 ViewModel 用于多个 View 还是多个 ViewModel 用于一个 View?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60135851/

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