我正在探索尖锐的架构,并且已经看到它实际上将实体传递到其他层(就表示层而言)。它不应该暴露实体的接口,使其更松散耦合?或者我错过了什么?
答案 0 :(得分:1)
我相信您可以通过多种方式实践DDD,最重要的是实际查看您的项目需求和情况。如果您将在asp.net MVP或MVC Web应用程序上实践DDD,该应用程序可能不会与其他外部系统通信。然后,使用服务层和DTO对象可能有点过分,因为不要让表示层知道有关域的任何信息。最重要的是隐藏/删除实体创建,域逻辑和可能性的知识,以使实体处于无效状态。所有这些都可以通过一个好的域实体api来实现。然后我觉得将实体发送到presention层是一个好习惯。您还可以使用存储库在表示层中的Controller / Presenter类中加载实体。 如果你看一下很多DDD的例子,你会发现人们倾向于选择最适合他们的东西。 我从未见过任何使用接口公开实体的示例和实践。只需内部,受保护和只读属性即可实现很多功能。这将隐藏表示层的api功能。
/最好的问候BacceSR