【发布时间】:2014-07-29 01:42:39
【问题描述】:
一个模型能否与其他模型通信,就我而言,一个模型是否可以拥有另一个模型的列表,例如:
我有一个名为 Graph 的模型和一个名为 Node 的模型。
在 MVVM 模式中是否适合将作为模型的 Graph 类包含为属性,模型节点的列表?
【问题讨论】:
-
绝对合适。
一个模型能否与其他模型通信,就我而言,一个模型是否可以拥有另一个模型的列表,例如:
我有一个名为 Graph 的模型和一个名为 Node 的模型。
在 MVVM 模式中是否适合将作为模型的 Graph 类包含为属性,模型节点的列表?
【问题讨论】:
是的。
MVVM 只是视图和数据方面的关注点分离。视图可以有其他视图,模型可以封装其他模型。视图模型是使用模型存储和获取数据并由视图使用的混合体。
【讨论】:
虽然答案可能是肯定的,但您确实必须考虑 MVVM 中的“适当”职责。只要模型保持模型的完整性(引用、域/验证检查),就可以让模型类相互“通信”。但是,一般来说,我更喜欢 ViewModel 和存储库来负责检索数据并将其转换为 ViewModel 类。
很多时候我不需要模型中的任何逻辑,模型是我从数据存储接收并发送到数据存储(文件、数据库、Web 服务……)的结构,模型对我来说只是“只是”数据并且最好生成(代理生成,实体框架,...)
【讨论】: