首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DDD:在哪里生成实体的url slug?

DDD:在哪里生成实体的url slug?
EN

Stack Overflow用户
提问于 2015-03-12 21:26:36
回答 1查看 744关注 0票数 5

如何在DDD中处理url段塞生成?

内部构造函数?但是实体依赖其他服务是不好的。

作为构造函数参数传递?我认为插件不应该出现在那里,因为它们不是业务需求。是吗?

或者只是有一个二传手?

EN

回答 1

Stack Overflow用户

发布于 2020-11-11 03:04:28

URL段似乎是您的域模型的一部分,尽管它一开始看起来像是一个基础设施问题。

如果您将其建模为实体的属性,我认为在构造函数参数中传递它没有问题。这当然比将它作为一个带有公共setter的属性,任何人随时都可以修改要好得多。

创建一个ISlugGenerator接口并将其注入适当的层(ApplicationService或DomainService,有关更多信息,请参阅here ),以生成URL字符串并在构造函数中将其传递给实体。

在表示层实现ISlugGenerator,该层实际包含要通过URL访问的页面/路由。

您可能会争辩说,URL实际上在域模型中没有位置,因为它只是一些与实体相关的信息,但并不用于任何决策过程。

那么,考虑一下电子商务应用中的Product Description或Product Image。这是一回事。您肯定有针对这些属性的验证逻辑,并且此验证应该是域的一部分,但您可能不会基于它们做出任何其他决策。

那么,您不应该从Product实体中删除Description和Image吗?实际上,不是。即使图像可能是一个URL,就像您的问题中的弹头一样。

产品将在其构造函数中以字符串参数的形式接收imageUrl,或者通过实体中的方法进行设置。但是imageUrl将由某个ImageUploadService生成,其接口将在应用层定义,并在某个基础架构层实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29011079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档