【问题标题】:Different access for a property from different layers不同层对属性的不同访问
【发布时间】:2013-04-18 17:56:29
【问题描述】:

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

有没有办法使表示层的状态属性只读但应用程序服务可写?或者我只是以错误的方式建模?我正在使用 .NET。

【问题讨论】:

    标签: .net domain-driven-design


    【解决方案1】:

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

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

    这样,应用服务可以改变状态,但视图不能直接改变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2018-09-13
      相关资源
      最近更新 更多