每个屏幕的多个视图模型



开发者们好,我有一个问题,希望你们能帮助我。

我读到谷歌建议为每个屏幕都有一个视图模型,一个屏幕可以与视图模型通信来执行许多不同的操作。所以视图模型有很多职责,这是违背solid的S的。每个屏幕都有必要的视图模型,这样每个屏幕都有一个单独的责任,这样会好吗?

我相信这种多视图模型方法将提高可重用性、封装性和碎片性;因为如果两个屏幕需要执行相同的操作,则不需要复制相应视图模型的代码或将相同的用例传递给两者。每个屏幕都可以访问您需要的内容。

你问了一个很好的问题。这些只是我的观点:你提到了一个屏幕的多个viewmodel(让我们说"视图")和单一职责原则。1:是的,你可以为一个视图使用多个viewmodel。但在MVVM结构中并不典型。2: ViewModel的主要目的是分离您的关注点,并且可以在不启动设备或模拟器(在JVM级别运行)的情况下测试应用程序的逻辑。3: SRP不仅仅是你在视图模型考虑的方式,让我给你举个例子:想象你想验证电子邮件或电话,…在你的ViewModel中,你可以创建一个遵循SRP的验证类(它有单一的责任),现在你可以在ViewModels中需要它的地方使用这个类。定义遵循SRP的共享类、存储库或用例,并在ViewModel中使用它们,而不是在视图中定义多个ViewModel,我相信每个视图都有自己的ViewModel。在android中,viewModel也被设计用来保存视图的数据。这意味着当你的配置改变时,你的activity和fragment的数据不会被破坏。

希望这对你有帮助:)

相关内容

  • 没有找到相关文章

最新更新