Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 视图模型中没有代码是否有例外?_Android_Mvvm_Viewmodel_Testability - Fatal编程技术网

Android 视图模型中没有代码是否有例外?

Android 视图模型中没有代码是否有例外?,android,mvvm,viewmodel,testability,Android,Mvvm,Viewmodel,Testability,一般的经验法则是,视图模型中不应该有特定于android的代码,以便于测试 我需要将包含大量元数据的包传递给视图模型进行过滤,然后返回视图。逻辑相当密集,最好由视图模型来处理 该规则是否有任何例外,例如使用Bundle或其他非活动或片段android类?还是有什么建议可以解决 这可能会被标记,因为它是基于意见的。因此,没有最终的权威来颁布这些事情 我个人曾参与过一些大规模的MVVM项目,包括WPF和Xamarin,其中包含数十万行源代码,没有一行代码。我还可以诚实地说,在我与WPF合作的10多年

一般的经验法则是,视图模型中不应该有特定于android的代码,以便于测试

我需要将包含大量元数据的包传递给视图模型进行过滤,然后返回视图。逻辑相当密集,最好由视图模型来处理


该规则是否有任何例外,例如使用Bundle或其他非活动或片段android类?还是有什么建议可以解决

这可能会被标记,因为它是基于意见的。因此,没有最终的权威来颁布这些事情

我个人曾参与过一些大规模的MVVM项目,包括WPF和Xamarin,其中包含数十万行源代码,没有一行代码。我还可以诚实地说,在我与WPF合作的10多年中,我从未见过任何一个问题不能通过严格遵循范式得到优雅解决的案例。这并不是说有些解决方案并没有更加冗长或复杂……许多解决方案确实如此……但它们都非常优雅,最重要的是,它们非常强大

不是每个人都像我一样是MVVM纯粹主义者。Josh Smith是WPF/MVVM领域最受尊敬的权威之一,他在自己的书《高级MVVM》(Advanced MVVM)中开玩笑地写道:“其他人坚持认为,代码背后不应该有一行代码,这是基于一种奇怪的观念,即代码不属于代码背后。这群代码真奇怪!”

任何技术(如WPF)的问题在于,应用程序层之间的区别在最好的时候是模糊的。我们都见过经验不足的WPF开发人员,他们在面对XAML的强大功能时,开始尝试将尽可能多的逻辑塞进视图层。还有一些人通过简单地将代码转移到转换器和行为中来解决代码隐藏问题,他们没有意识到这些只是稍微抽象一点的代码隐藏形式。(我并不是说不应该使用它们,我一直都在使用它们,只是要记住它们仍然是视图逻辑!)

是的,这很复杂。最后,作为开发人员,您需要根据项目的需求做出最佳和最明智的决策