【问题标题】:Domain Driven Design - Common Behaviour领域驱动设计 - 常见行为
【发布时间】:2015-09-21 13:50:30
【问题描述】:

想象在一个受 DDD 启发的系统中,我们有多个有界上下文,每个上下文都有一个“Person”域对象的变体。

我们如何设计所有这些不同 Person 对象的共同行为?

我们是在每个 Person 类中复制该行为还是使用类似域服务的东西?我有点困惑。

请分享您的想法。

【问题讨论】:

  • 您可能希望依赖共享内核,但不要忘记重用是耦合。少量重复往往比试图消除所有重复更有利。
  • 如果有界上下文是不同的,那么不要害怕,把代码写两次。
  • 请分享具体人物的样本。
  • 感谢您的 cmets。发现 Udi Dahan 的这篇演讲,其中谈到了重用的过度美化及其对软件质量的影响(增加的耦合)。在这种情况下,我用复制品做了桃子。 vimeo.com/131757759

标签: domain-driven-design


【解决方案1】:

挑战您共享有界上下文。不要落入错误的人群中——认为单独的有界上下文很常见,因此必须无处不在。人们听说他们很重要,因此我必须拥有一些!

在领域模型中,有多种方法可以对扮演不同角色(上下文)的事物、人和地点进行建模。这是领域建模中最常见的问题之一。

个人可以充当(参与)客户、供应商、团队成员、获奖者和 SocialGroupMember。

机场登机口可以是 DepartureGate、ArrivalGate,有时也可能是 EmergencyGate。

产品可以是 ProductBeingSold、ProductBeingReturned、ProductUnderDevelopment。

所有这些通常都在代表所考虑问题的单个域中建模。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 2015-01-26
    • 2014-04-25
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    相关资源
    最近更新 更多