UML元素关系种类
Posted 单片机软件开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML元素关系种类相关的知识,希望对你有一定的参考价值。
今晚太晚才回家,直接百度搜索复制粘贴不打字了。相信坚持才能改变状况。
理解六大关系中在代码中的体现,就可以轻松的阅读设计模式
一、泛化关系(Generalization)
说明:这种关系就是面向对象语言中的继承关系,逻辑上可以用"is a"表示。
从特殊事物到一般事物之间的关系,也就是子类到父类之间的关系。从富父类到子类,则是特化关系。
代码体现:子类继承父类。
UML符号:一条实线+空心箭头。
图示:
二、实现关系(Realization)
说明:和泛化关系相似,逻辑上也是用"is a"表示。区别在于实现关系继承一个抽象类(abstract、interface),而泛化关系继承一个具体类。
实现关系是用来规定接口和实现接口的类或组件之间的关系。实现关系是从类指向接口的带空心箭头的虚线表示,
代码体现:实现接口或继承某个抽象类。
UML符号:一条虚线+空心箭头。
图示:
三、组合关系(Composition)
说明:是整体与部分的关系,但部分不能脱离整体而独立存在。逻辑上能用"has a"表示。
组合关系是一种非常强的对象间关系,每个部分只能属于一个整体,无法被其他部分分享,如果没有整体,那么部分也没有存在的价值。
代码体现:成员变量。
UML符号:一条实线+实心菱形。
图示:
四、聚合关系(Aggregation)
说明:是整体与部分的关系,部分能脱离整体而独立存在。逻辑上能用"has a"表示。
聚合表示类之间的关系是整体与部分的关系。聚合关系是一种松散对象间与整体关系的关联,例如计算机和它的外围设备之间就是聚合关系。
代码体现:成员变量
UML符号:一条实线+空心菱形
图示:
五、关联关系(Association)
说明:是整体与部分的关系。逻辑上能用"has a"表示。
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联关系提供了通信的路劲,它是所有关系中最通用、语义最弱的关系。
代码体现:成员变量。
UML符号:双向关联,一条实线或一条实线+两个箭头;单向关联,一条实线+一个箭头。
图示:
自身关联:在单例模式中可以看到。
关联的多元性图示:
六、依赖关系(Dependency)
说明:是一种使用关系,即一个类的实现需要另一个类的协助。逻辑上能用"use a"表示。
尽量不要使用双向依赖。
代码体现:局部变量、方法的参数和静态方法的调用。
UML符号:一条虚线+箭头。
图示:
七、总结:
1.六种关系的耦合度大小是:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
2.泛化和实现体现了逻辑上的"is a"的关系,组合、聚合和关联体现了逻辑上的"has a"的关系,
“依赖”体现了逻辑上的"use a"的关系。
3.写这篇博客的目的是为学习设计模式和阅读开源框架的源码打基础。
---------------------
来源:CSDN
原文:https://blog.csdn.net/ruren1/article/details/81584232
版权声明:本文为博主原创文章,转载请附上博文链接!
以上是关于UML元素关系种类的主要内容,如果未能解决你的问题,请参考以下文章
架构漫谈:UML中几种类间关系:继承实现依赖关联聚合组合的联系与区别