Domain driven design 什么';这是一个在UML中被称为排他性的弧

Domain driven design 什么';这是一个在UML中被称为排他性的弧,domain-driven-design,data-modeling,uml,Domain Driven Design,Data Modeling,Uml,这是一个什么是排他性弧的例子(绿色弧);它的意思是飞机可以有螺旋桨或喷气发动机,但不能两者兼有 在巴克记数法中,一种排除 对两个或多个角色的约束是无效的 显示为连接的“专用弧” 给角色加上一个小点或 圈 见(第2页) 顺便问一下,你们能用DDD付款吗?(如果它们是UML的一部分,我假设您可以这样做) 编辑-我关于DDD的问题有点误导,我把它放在事后思考中,但@sfinines的回答提出了另一个有效的问题,我将单独提出(在一些研究之后) 不确定“受DDD支持”是什么意思 DDD本身并不提供建模

这是一个什么是排他性弧的例子(绿色弧);它的意思是飞机可以有螺旋桨或喷气发动机,但不能两者兼有

在巴克记数法中,一种排除 对两个或多个角色的约束是无效的 显示为连接的“专用弧” 给角色加上一个小点或 圈

  • 见(第2页)
顺便问一下,你们能用DDD付款吗?(如果它们是UML的一部分,我假设您可以这样做)

编辑-我关于DDD的问题有点误导,我把它放在事后思考中,但@sfinines的回答提出了另一个有效的问题,我将单独提出(在一些研究之后)

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

DDD本身并不提供建模语言:它是方法(如何解决问题)和体系结构(如何构造应用程序)的组合

你表达的是一条商业规则:飞机可以有喷气式发动机或螺旋桨发动机,但不能两者都有

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

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


谢谢斯芬妮。我想知道DDD是如何处理这种约束的——但这更多的是一个次要问题。我的主要想法是:在数据建模中,你可以有一个“排他性弧”(特别是在巴克符号中)——我只想知道UML是否有一个等价物,以及它的名称。啊-好的。是的,UML有一个等价物——xor约束。在相互排斥的类之间绘制为虚线。请参见UML上层结构规范()第61页上的图7.34。谢谢Sfinie-您的评论是“正确答案”的基础:)很高兴能提供帮助。对xor的支持在建模工具上有点零碎——强大白板的另一个优势是:-)