【UML】关联和依赖

版权声明:我的博客我做主! https://blog.csdn.net/lk1822791193/article/details/82851321

前言

UML四大关系中,包括:泛化,实现,关联,依赖。

泛化就是我们在面向对象中提到的继承,而实现则更多的体现在类和接口之间的关系。

关联和依赖相对于上边两个关系,则表现的不是很容易理解,所以我们今天来深入学习一下。

关联

它表示类与类之间的连接,它使得一个类知道另一个类的属性和方法。

关联可以用单向箭头表示单向关联,使用双箭头表示双向关联(不建议)。

关联是类与类,类与接口之间的一种比较强烈的关系,它不是临时性的,而是长期性的。

代码体现

1.B作为A的属性出现在了A中

2.关联类A引用了被关联类B的全局变量

它的两个特例

1.聚合:空心菱形箭头

它也是关联关系的一个特例(has-a),但是此时整体和部分是分离的,有各自的声明周期。

代码体现:通过实例变量来体现

2.组合:实心菱形箭头

是关联关系的一个特例(contain-a),比聚合关系更强,它和聚合最大的区别就是:整体和部分是不可分的(就好比人和氧气一样!)

代码体现:它的体现在代码段和聚合并没有很大的区别,唯一的区别就是:部分和整体的声明周期是一致的。

               

依赖

它表示类与类之间的连接,表示一个类依赖于另外一个类的定义,方向是单向的。(可以简单理解为:我吃饭用到筷子,所以在吃饭这件事上,我依赖于筷子,但是我不吃饭我就不依赖于它了!


它具有偶然性,临时性,而且这种关系非常弱。但是类B(筷子)的变化会影响类A(我)。(如果没有筷子,我吃饭就会受到影响

表示方法:虚线箭头

它分为四种:

1.精化

2.跟踪

3.包含

4.延伸

代码体现:

1.A方法的参数是B(耦合)

2.A方法的参数是B的属性(紧耦合)

3.A方法中实例化了B

4.A方法的返回值是B

关系强弱排序:组合>聚合>关联>依赖

虽然知识点不是很多,但是博主感觉都是挺重要的点。

想要深入的理解这种关系,我们还是要多去实践,在代码中体会它们的异同,纸上学来终觉浅,绝知此事要躬行!加油!

感谢大家认真阅读和点赞鼓励!有什么问题欢迎大家和我交流!

猜你喜欢

转载自blog.csdn.net/lk1822791193/article/details/82851321