软件设计别再聚合和组合傻傻分不清了

软件设计中,除了识别实体对象,识别实体行为外,识别实体对象间的关系尤为重要。

软件设计中对于一对多的设计,往往采用聚合或组合关系标记UML图。但一般不会详细区分这2种关系。

聚合关系:一种特殊的关联关系,是一种整体和局部的关系。局部可以离开整体而独立存在,是一种语义关系。如:部门和员工的关系。若部门不存在了,员工还存在的。

UML图的画法为空心菱形

组合关系:同样的,也是一种特殊的关联关系,是一种整体和局部的关系。局部不能离开整体而独立存在,是一种语意关系。如:公司和部门的关系。若公司不存在了,则部门也不应继续存在;再如鸟和翅膀的关系,如果鸟不在了,翅膀也不存在。

UML图的画法为实心菱形

聚合与组合的差异

使用误区主要有:

1 对于一对多的关系,未思考是否属于整体和局部语义,直接判定要么是聚合要么是组合。实际可能仅是简单的关联关系,此时不需要用聚合或组合来表达,用普通关联更好。

2 不区分是否聚合或组合,未思考其中的实现区别,其中聚合用于松散的关系,组合用于紧密的关系,在创建和销毁的时刻,会有很大差异。

#程序员##软件开发#

孜孜不倦,每日一学

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月23日
下一篇 2022年9月23日

相关推荐