关于UML和java类的一些知识

首先,UML图能比较直观的表示java类于类之间的关系。

那么,java的类于类之间的常用关系有几种呢?以及每种关系如何通过UML表示呢?

1.关联关系
关联还细分为一下关系
a.双向关联

这里写图片描述

C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。
双向关联在代码的表现为双方都拥有对方的一个指针,当然也可以是引用或者是值。
即在C1类里面,有一个C2的引用;C2的类里面,也有一个C1的引用。

b.单向关联

这里写图片描述

C3->C4:表示相识关系,指C3知道C4,C3可以调用C4的公共属性和方法。没有生命期的依赖。一般是表示为一种引用。


c.自关联

这里写图片描述

自己引用自己,带着一个自己的引用。

2.聚合/组合关系
当类之间有整体-部分关系的时候,我们就可以使用组合或者聚合
细分,有两种
a.聚合
这里写图片描述

    表示C9聚合C10,但是C10可以离开C9而独立存在(独立存在的意思是在某个应用的问题域中这个类的存在有意义)
    再从网上找一个图:

这里写图片描述

b.组合

这里写图片描述
组合是有实心菱形加实线箭头表示。
表示的是C8被C7包容,而且C8不能离开C7而独立存在。
但这是视问题域而定的,例如在关心汽车的领域里,轮胎是一定要组合在汽车类中的,因为它离开了汽车就没有意义了。但是在卖轮胎的店铺业务里,就算轮胎离开了汽车,它也是有意义的,这就可以用聚合了。
具体问题具体对待,就像我们最常用的类一样,我将这个类封装到什么程度,完全取决于实际需要。

3.依赖关系
这里写图片描述

依赖是一种弱关系,所以中间的线是虚线
指C5可能要用到C6的一些方法,也可以这样说,要完成C5里的所有功能,一定要有C6的方法协助才行。C5依赖于C6的定义,一般是在C5类的头文件中包含了C6的头文件。

这里写图片描述
就是A中的某个方法,用到了B。从而让B去完成一些事情。比如:我和自行车的关系,我和自行车平时可能没有什么关系,突然有一天我想骑车去一个地方,那么这时候,我和自行车就有了依赖关系,我要依赖自行车带我去一个地方。

4.泛化(继承)关系
这里写图片描述

如果两个类存在泛化的关系时就使用,例如父和子,动物和老虎,植物和花等
这个我们用的很多了。

总结一下,以上UML图困难不方便记忆,可以这样,箭头指向谁,谁就被怎么怎么样。箭头=被
虚线是弱关系
实现是强关系
这对大家的要求就是看到这些UML表示的关系图,就能知道是哪种关系。一定要熟练掌握。
如果这个掌握不了,对后续的JAVA设计模式造成影响。从而理解不了设计模式之间的关系。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值