一次次梳理—UML四种关系(二)

前言

    视频中的老师讲的特别好,每个知识点都是先引入,然后第二次说一点,第三次说一些,层层深入,感觉看的很爽,让我想起了n+1的学习方法,这样的学习很有兴趣,有一种感觉是慢慢明朗了很多了。

    言归正传,UML中四种关系必须拿出来好好说说,真的是会混淆的。事物都可以抽象成一个对象,但是孤立的对象是没有意义的,那么他们是如何有条不紊的工作的呢,我们马上直入主题!

四种关系

1 依赖关系(dependency)

    可以简单的理解就是一个类,类A依赖于类B,简单一些可以理解为类A用到类B这种依赖关系是普遍存在的,但是这种关系又是很弱的,临时的,具有偶然性。

图中用带箭头的虚线表示,箭头指向被依赖的对象。


2 关联(Association)

    关联可以说是一种强依赖,不存在依赖关系的偶然性和临时性,例如小花和小明是朋友,这种依赖的关系比较强,为关联关系。


2.1普通关联

    图中用实线表示关联关系,同时关联中有关联的名称,角色名称。


2.2聚合(aggregation)

    聚合式关联关系的一种特例,体现的是整体与部分的拥有关系,此时整体与部分是可以分离的,部分离开整体依然可以工作。

    图中以空心的菱形指向整体,但部分脱离整体仍可以工作。例如学生和班级:


2.3组合(compositon)

    整体和部分的关系,这种关系比聚合强,部分的生命周期必须依赖整体,整体的生命周期结束部分的生命周期也跟着结束了。

    图中以实心的菱形指向整体,如果大脑脱离了人,那么就无法工作了:


3 泛化

    为类和类之间的继承关系,一个子类可以继承一个父类的功能,是类和类,接口和接口之间最常见的继承关系。用空心三角形表示,指向父体。

    以下图举例,猫和狗都是动物,可以继承动物的一些属性。


4 实现

    实现是一个class类实现interface接口(可以一个或多个)的功能,实现是类与接口之间最常见的关系。以空心三角和虚线表示,空心三角指向要实现的类元。

以下图为例:


关系强调

   依赖和关联区别:我用锤子修了一下桌子,我和锤子之间就是一种依赖,我和我的同事就是一种关联。依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关系,而不是必然的关系。关联是类之间的一种关系,例如老师教学生,老公和老婆这种关系是非常明显的。依赖是比较陌生,关联是我们已经认识熟悉了。

    这四种关系我们要准确描述,他们强调的顺序是:实现=继承>组合>聚合>普通关联>依赖,同时依赖关系很常见,常常也确实存在这种关系,但是如果能用别的关系替代依赖,就不要用依赖了。

图形举例

    我们每天都会骑自行车,那么就用一个关于自行车的类来描述这四种关系。(如有不合适的地方,敬请留言)


结语

    找关系要找对,能让我们的模型建得准确,也让我们慢慢变得专业起来。

 

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值