在UML中,事物间的关系按照is a, has a和use a三个层级可以分为六种关系。分别是泛化:generalization、实现:realization、组合:composition、聚合:aggregation、关联:association以及依赖:dependency。
1.泛化:generalization
泛化是一种is a关系,表示一般到特殊的关系,一般用在继承中。比如“animal”和“tiger”,a tiger is an animal.
符号: 空心三角形指向抽象类,线条用实线.
2.实现:realization
实现是一种is a关系,表示实现某种能力,用来实现接口。比如“fly”和“bird”,a bird is something that can fly.
符号: 空心三角形指向接口,线条用虚线。
3.组合:composition
组合是一种has a关系,表示整体跟部分,注意局部不可以脱离整体而存在。比如“tree”和“leaf”,A tree has a leaf.
符号: 线条用实线,实心菱形指向整体,箭头指向部分。
4.聚合:aggregation
聚合是一种has a关系,表示整体跟部分,但是相对于组合来说,部分可以脱离整体而存在。比如“forest”和“rabbit”,A forest has a rabbit, the rabbit run away from the forest, it run into a zoo, And then, the zoo has that rabbit.
符号: 线条用实线,空心菱形指向整体,箭头指向部分。
5.关联:association
关联是一种非整体和部分的has a关系,比如“child”、“teacher”和“toy”,一个child会有多个teacher,一个teacher会有多个child,一个child会有多个toy,一个toy只会属于一个child.
符号: 线条用实线,双向关系可以不用箭头或者用两个箭头,单向关系用一个箭头,要标注关联数量。
6.依赖:dependency
依赖是一种use a关系。一般表现为局部变量、函数形参。比如“monkey”和“stone”,A monkey can use a stone.
符号: 线条用虚线,箭头指向被使用者。
以上6种关系是从抽象与具体、整体与局部、使用与被使用三个维度总结出来。只有弄懂符号背后的这三种关系才能够谈得上理解与使用这些符号。
---------------------
作者:长风Qiu
来源:CSDN
原文:https://blog.csdn.net/chang_mu/article/details/80501657
版权声明:本文为博主原创文章,转载请附上博文链接!
原文地址:https://www.cnblogs.com/feng9exe/p/9953687.html