来自不同层的属性的不同访问

时间:2013-04-18 17:56:30

标签: .net domain-driven-design

假设您的域实体中有Status属性。此属性用于了解对象的系统状态,并且必须在表示层中以只读方式使用。此图层无法直接修改status属性。相反,一个应用程序服务具有更改状态的特定操作。

有没有办法使表示层的status属性只读,但可由应用程序服务写入?或者我只是以错误的方式对此进行建模?我正在使用.NET。

1 个答案:

答案 0 :(得分:0)

最佳做法是将您的演示模型与域模型分离。具体来说,创建一个视图模型并将UI绑定到该模型而不是直接绑定到域对象。可以通过将域对象传递给构造函数来初始化视图模型。例如:

class SomeEntity
{
 public string Status { get; set; }
}

class SomeEntityViewModel
{
 public SomeEntityViewModel(SomeEntity e)
 {
  this.Status = e.Status;
 }
 public string Status { get; private set; }
}

通过这种方式,应用程序服务可以更改状态,但视图不能直接更改。