1

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

4

1 回答 1

1

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

/最好的问候 BacceSR

于 2011-04-13T09:41:14.333 回答