【发布时间】:2017-06-20 06:43:30
【问题描述】:
我遇到的大多数 Swift MVVM 示例都使用依赖注入将模型注入 ViewModel,然后将 ViewModel 注入 ViewController。通常建议在 AppDelegate 中将这种注入作为单例处理。这对于简单的例子来说都很好。
然而,在现实世界中,“模型”实际上不仅仅是一个 DTO 对象,它假定返回模型/DTO 的业务和数据层。因此,将模型注入 AppDelegate 级别的 ViewModel 是不现实的,因为 View/ViewController 将触发实际的数据刷新。所以模型注入需要在其他地方进行。
此外,大多数示例直接从 ViewModel 转到 DataAccess,这导致 ViewModel 包含大量业务逻辑,而理想情况下它应该只保存视图的状态。
有人可以转发一个全面的端到端 Swift MVVM 示例,其中包含离散分离的业务和数据层。为了使这个问题不是基于意见,而是采用问答格式,示例应具有:
- 独立的业务逻辑层
- 独立的数据访问逻辑层
- 分离模型/DTO(仅状态对象)
例子也应该说明清楚:
- 依赖注入发生的地方
- 有明确定义的调用 上述定义层之间的层次结构
【问题讨论】:
-
这实际上是一个非常相关的问题,我也在寻找答案。
标签: ios swift mvvm business-logic data-access