0

我已经阅读了几篇关于 MVVM 模式的文章和教程,但有一件事我找不到关于它的不同信息。让我们看下面的例子:

该模型包含两个字段和属性:

private string username;
public string Username {
  get; set;
}

private string password;
public string Password {
  get; set;
}

现在,视图模型应该包含什么?它应该只包含模型的一个实例,还是应该“重新公开”模型的属性?

private Model _model;
public Model Model {
  get; set;
}

或者...

private Model _model;
public Model Model {
  get; set;
}

public Username {
  get { return _model.Username; }
  set { _model.Username = value; }
}

我在几篇文章中看到了这两种变体,现在不确定哪种方式是正确的。

4

1 回答 1

1

这个问题没有普遍的正确或错误答案。这取决于上下文和个人喜好。

我个人倾向于不直接将模型暴露给视图。我喜欢有一个专门为视图量身定制的 ViewModel。我不想仅仅因为视图需要它而在模型中实现任何东西(当模型暴露给视图时,我可能很想这样做)。

在我的 ViewModel 中,我希望尽可能少地依赖模型。如果我能摆脱它,我希望有一个完全不直接依赖于模型的 ViewModel 并且有一些外部实体/服务填充来完成映射)。

于 2012-11-19T08:47:43.580 回答