hilobekerfulaisien
2020-10-26 21:17
采纳率: 0%
浏览 36

MVVM中的一些疑问求解答。

我很模糊,网上每个人说法不一致,求帮忙纠正。

1)**View**与**Viewmodel**的关系?

每一个“**组件**或**页面**”都由**View**和**Viewmodel**2部分组成。

也就是 Page = View + Viewmodel

  • View负责“**显示效果**”,内容都是些长宽高,对齐,居中等;
  • Viewmodel负责“**数据与方法**”,内容为“方法定义(点击按钮调用)”和“数据(字段各种VO)”。

VisualStudio的uwp项目,xaml文件下面往往有一个对应的cs文件,那么这里xaml就是**View**,cs就是**Viewmodel**。

2)项目各层顺序是不是应该这样?

括号内是我自己改的名,为了方便理解归类,不知合理不。

  1. DAO(persistent),一系列增删改查PO的方法,返回PO给业务层。
  2. PO (persistent object),跟数据库表一一对应,也就是说PO类里包含int类型外键字段。
  3. BO(service),业务方法,执行业务逻辑,包括各种计算,判断,分析,流程阶段,返回DTO给视图层。
  4. DTO(service object),从PO删减不需要的字段,比如一个类100个字段,其实我们只需要其中10个。
  5. ViewModel,从DTO修改,返回VO给View。
  6. VO(view object),显示数据打包。
  7. View,负责显示外观,VO数据的使用者和缓存者,点击按钮会调用对应Viewmodel里的方法。

大概类似这样:

图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • ziqi0716 2020-10-27 09:25

    m-v-vm,这个是基础架构,辅助的通常还有依赖注入,orm等.

    顺序应该是现有model,或者说entity,然后再有其他部分,通常情况其他部分先后顺序是互不依赖的.

    以上,个人理解.

    评论
    解决 无用
    打赏 举报