我正在学习ios中的mvvm,并且与viewModels混淆。我应该为每个viewController创建一个viewModel吗?或者为每个模型创建viewModel?如果我选择为每个视图创建一个viewModel,那么我可能会在viewModel中使用多个模型。这不是一种代码味道吗?如何组织viewModels?
0
A
回答
3
模式的基本思想是有三层结构。在基础层上,有模型(有人称之为服务),为应用程序提供数据接口。 您构建View Models以包含应用程序的业务逻辑。这些当然会操纵数据。因此,在视图模型中使用多个模型是正确的,有时也是必需的。 视图使用从视图模型公开的属性向用户呈现数据并将数据从用户发送回业务逻辑。因此,通常每个视图模型都有一个视图,但您可能希望有不同的方式将相同的业务逻辑展示给用户,以便允许使用一个视图模型的更多视图也可以。最后,问题可能是:我应该创建多少个视图模型?答案并不容易:通常,作为一个起点,您可以创建一个视图模型来封装可通过单个页面呈现给用户的单个离散功能。当您更多地使用模式时,您可能会演变该模式。 这是一个非常基本的想法,它允许您从视图模型中独立测试模型,这应始终被认为是使用此模式最有用的优点之一。
1
我非常喜欢Antonello的回答。对于MVVM的一个非常酷的例子,请与Kickstarter的人一起看看这个objc.io视频。
https://talk.objc.io/episodes/S01E47-view-models-at-kickstarter
相关问题
- 1. 如何组织和组织嵌套类
- 2. 在Caliburn框架中组织视图和ViewModels
- 3. as3:如何组织班级
- 4. 如何组织Drupal模板?
- 5. MongoDB:如何组织数据
- 6. 如何组织css文件?
- 7. 如何组织以下
- 8. 如何组织一个webapp?
- 9. 如何组织网站?
- 10. CMake - 如何组织依赖
- 11. 如何组织并排
- 12. 如何组织Webdriver测试
- 13. 如何组织交易?
- 14. 如何组织头文件
- 15. 如何组织Perl模块
- 16. 如何组织kivy布局?
- 17. 如何组织TypeScript接口
- 18. 如何组织项目?
- 19. 框图如何组织?
- 20. 如何组织PHP代码?
- 21. 如何组织stackoverflow团队?
- 22. 如何组织Ansible角色?
- 23. 用元组替换ViewModels
- 24. Static ViewModels vs instanced ViewModels
- 25. WPF MVVM - 如何安排ViewModels
- 26. 数组组织
- 27. 组织信息软件开发组织
- 28. 刷新组织架构组织模式
- 29. Salesforce组织对组织对象迁移
- 30. 组织数组c#