【问题标题】:Passing entities to other layers? (ddd noob)将实体传递给其他层? (ddd菜鸟)
【发布时间】:2011-08-04 11:43:37
【问题描述】:

我正在探索清晰的架构,并且已经看到它实际上将实体传递到其他层(就表示层而言)。它不应该暴露实体的接口以使其更松散耦合吗?还是我错过了什么?

【问题讨论】:

  • 你能给出一个代码示例来说明你的意思吗?

标签: nhibernate fluent-nhibernate domain-driven-design sharp-architecture


【解决方案1】:

我相信您可以通过多种方式实践 DDD,最​​重要的是实际查看您的项目需求和情况。如果您将在 asp.net MVP 或 MVC Web 应用程序上练习 DDD,并且该应用程序可能不会与其他外部系统通信。然后使用服务层和 DTO 对象只是为了不让表示层知道有关域的任何信息,这可能是矫枉过正。最重要的是您隐藏/删除创建实体、域逻辑和将实体置于无效状态的可能性的知识。所有这一切都可以通过一个好的域实体 api 来实现。然后我觉得将实体发送到表示层可能是一个好习惯。您还可以使用存储库在表示层的 Controller/Presenter 类中加载实体。 如果您查看大量 DDD 示例,您会发现人们倾向于选择最适合他们的方式。 我从未见过任何使用接口公开实体的示例和实践。仅使用内部、受保护和只读属性就可以实现很多目标。这将隐藏表示层的 api 功能。

/最好的问候 BacceSR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 2019-11-25
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    相关资源
    最近更新 更多