DDD领域驱动设计批评文集>>
《软件方法》强化自测题集>>
《软件方法》各章合集>>
小林 2022-7-13 11:16
我想把聚合关系画成下面这样可以吗,好像边界更清晰了。
UMLChina潘加宇
这里面涉及到一些知识点,要理清楚才行。
首先,如果是在对象级别,那可以,不会有歧义,像图1下部的对象关系。
图1
如果是类图,会存在歧义,根源是《软件方法》第8章所说“人有男有女”、“人有手有脚”的集合个体问题。
如果用套框来表示的话,就可能有两种意思,如图2:
图2
所以,干脆就不套框了,用不同连线来表达:
图3
如果坚持要套框,可以强制规定套框表示的是哪一种。
UML从2.0开始提供的“结构化类”表示,相当于规定套框表达的是组合关联(个体关系)。图4和图5摘自《UML参考手册(第二版)》。
图4相当于类图的变体:
图4 摘自《UML参考手册(第二版)》
图5则是图4中所表达的TicketOrder类的一个对象:
图5 摘自《UML参考手册(第二版)》
不过,我认为这样的表示容易模糊类和对象的区别,如果一定要在类图上使用套框,把套框的含义规定为泛化关系更合适,就像David C. Hay所用的,图6摘自David C. Hay的书“Data Model Patterns: Conventions of Thought”。
图6 摘自Data Model Patterns: Conventions of Thought
[新增EA028高压注射器]24套UML EA和StarUML的建模示范视频-全程字幕(2022.7.4更新)
7月21-24晚剔除“伪创新”的领域驱动设计-网络公开课
7月28-31晚网课:软件需求设计方法学全程实例剖析
《软件方法》书中自测题-题目全文 分卷自测(1-8章)16套111题
《软件方法》强化自测题集110题
CTO也糊涂的常用术语:功能模块、业务架构、用户需求……[20210217更新]
如何选择UMLChina服务
扫码加作者微信: