[答疑]把聚合关系画成方框套方框是不是更好

2022-10-31 16:36:05 浏览数 (1)

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服务

扫码加作者微信:

uml

0 人点赞