什么是UML中调用的排他性弧

时间:2010-10-18 21:56:05

标签: domain-driven-design data-modeling uml

以下是排他性弧的例子(绿色弧线);它的含义是飞机可以有螺旋桨或喷气发动机 - 但不是两者都有。

  

在Barker ER符号中,排除   对两个或多个角色的约束是   显示为“独占弧”连接   用小点或   圈。

顺便说一下 - 你能用DDD吗? (我假设你可以,如果他们是UML的一部分)。

编辑 - 关于DDD的问题有点误导,我把它放在了思考之后,但是@sfinnies的回答提出了另一个有效的问题,我会单独提出(经过一些研究)。 / p>

alt text

1 个答案:

答案 0 :(得分:1)

不确定“DDD支持”是什么意思?

DDD本身不提供建模语言:它是方法(如何攻击问题)和架构(如何构建应用程序)的组合。

你正在表达一个商业规则:飞机可以有喷气发动机或螺旋桨发动机,但不能同时使用两者。

这是来自域的有效约束,可能与您的应用程序相关,因此需要在域逻辑中捕获。所以从这个角度来看,DDD支持它。

如何实现它部分取决于你的语言选择,但我猜测Plane将是一个聚合根,因此负责确保满足约束。 DDD所说的是,作为域约束,它应该在您的域逻辑中捕获:而不是其他一些架构层。

HTH