模型在MVVM中是否可以相互通信?

本文关键字:互通 通信 MVVM 是否 模型 | 更新日期: 2023-09-27 18:07:15

一个模型可以和其他模型通信吗?在我的例子中,一个模型可以有一个其他模型的列表吗?

我有一个名为Graph的模型和一个名为Node的模型。

在MVVM模式中,使作为模型的图形类作为属性包含模型节点的列表是否合适?

模型在MVVM中是否可以相互通信?

可以。

MVVM在视图和数据方面只是一个关注点的分离。视图可以拥有其他视图,模型可以封装其他模型。视图模型是一种混合体,其中数据使用模型存储和获取,并由视图消费。

虽然答案可能是肯定的,但您确实必须考虑MVVM中的"适当"责任。只要模型保持模型的完整性(引用、域/验证检查),让模型类彼此"通信"是完全可以的。然而,一般来说,我更喜欢由ViewModel和存储库负责检索数据并将其转换为ViewModel类。

很多时候我不需要模型中的任何逻辑,模型是我从数据存储(文件,数据库,web服务,…)接收和发送的结构。该模型对我来说"只是"数据,最好是生成(代理生成,实体框架,…)