Software Engineering | UML

本文详细解析了面向对象编程中的六大关系:关联、依赖、聚合、组合、泛化和实现,阐述了它们的区别与应用场景,特别是局部变量与成员变量在依赖与聚合关系中的作用,以及策略模式中的聚合关系应用。

六大关系:关联association、依赖dependency、聚合aggregation、组合compositon、泛化generalization、实现realization.

盗图:

关联:关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”,“了解”的含义。通过成员变量来实现的;

依赖:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系; 体现为局部变量、方法/函数的参数或者是对静态方法的调用;

聚合:关联关系的一种。聚合关系是整体和个体/部分之间的关系;关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次上,一个是整体,一个是个体/部分;在聚合关系中,代表个体/部分的对象有可能会被多个代表整体的对象所共享;

A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分,则 A 和 B 之间就是一种聚合关系。策略模式中,就是一种聚合关系。

组合: 它也是关联关系的一种,但它是比聚合关系更强的关系.组合关系要求聚合关系中代表整体的对象要负责代表个体/部分的对象的整个生命周期;组合关系不能共享;在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏,而聚在合关系中,代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏;组合关系是通过成员变量来实现的;

综上,如果是局部变量,那么就是依赖;如果是成员变量,看其生命周期。如果整体被销毁,部分也一定被销毁,那么就是组合。如果只是用成员变量的一些功能,就是关联。如果代表部分的对象被多个共享,就是聚合。

 

转载于:https://www.cnblogs.com/linyx/p/3831372.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值