数据模型的直接数据与间接数据

一个苹果,三个属性,颜色,味道,是否是高档的。

如果认为红色且甜的是高档苹果,那么。颜色和味道是直接数据。是否高档为间接数据。

直接数据 间接数据
数据来源 配置表,运行时生成 通过直接数据求解
是否可以修改 可以 否(通过直接数据求解)
是否在网络传输 部分是,部分来自本地配置表 否(通过直接数据求解)
C# 中的数据 字段 属性(get)
是否占用内存
MVVM层次 Model ViewModel
例如:
苹果 颜色,味道 是否高档
药水 堆叠数量,单价 总价
角色 最大连跳次数,当前连跳次数 能否跳跃


  • 直接属性和间接属性的区分是按照策划设计来的。表现为一个数据对另一组数据的依赖性。

  • 区分直接数据和间接数据能有效直观的对代码逻辑分层。

  • 直接数据通常在M层。不包含逻辑。

  • 间接数据在VM层。包含求解逻辑,对Model的数据修改逻辑。

  • 通常VM层对象包含M接口。而VM层接口继承M接口,并通过包含M接口实现。

  • 所以对View层来说,VM接口包含所有数据,而不关心数据来自哪里。

层层解耦,高内聚低耦合。