发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
本篇会讲解在UML类图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition)。
1.泛化关系
泛化关系是继承或实现的关系,是is a关系,具体表现为类与类的继承,接口与接口的继承,类对接口的实现关系。
2.依赖关系
依赖关系表示为一个类使用另一个类,这种使用关系是具有偶然性的、临时性的、非常弱的,一个类的变化会影响到另一个类,是use a关系,如果类A依赖于类B,那么类B可以是类A的局部变量,或类A方法的参数,或静态方法的调用。
3.关联关系
关联关系是一种强依赖关系,这种关系不存在依赖关系的偶然性,关系也不是临时的,是长期的,稳定的。双方的关系是平等的,可以单向关联也可以是双向关联。假如类A关联了类B,则类B是类A的全局变量(注意是全局变量,再看看上面的依赖关系),大多数关联都是单向关联,这比较容易维护,关于关联,在生活中我们常会说,类A持有类B的引用。
4.聚合关系
聚合关系是特殊的关联关系,是一种强的关联关系,他体现的是整体与部分关系,即has-a的关系,但是整体和部分是可以分离的,注意,是可以分离的。普通关联关系的两个类处于同一层次上,是平级的,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的“拥有”关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。具体表现为,如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建,这句话非常有意义,它在代码中通常体现成依赖注入的setter方法,即A对象可以随时创建B对象,再想想这不就体现了整体和部分是可以分离了吗?创建整体的时候可以不创建部分。
5.组合关系
组合关系也是特殊的关联关系,它体现一种contains a(拥有)关系,这种关系是比聚合还要强,也称为强聚合。体现了严格的整体和部分关系,两者是不可分割的,它们的生命周期是一致的。如果A由B组成,那么A就包含B的全局变量,并在创建A的同时创建B,在代码上我们通常是使用构造函数进行实现,也是依赖注入中构造函数的实现。
最后,我们来总结一下,泛化就不用多少了,大家都懂的,就是继承和实现接口,重点说下其它的吧,依赖,ClassB体现为ClassA的局部变量,我想用就用,用了就有关系,不用就没关系;关联,ClassB体现为ClassA的全局变量,不管你用不用,反正你知道我的存在了,持有了我的引用。聚合,是特殊的关联关系,用了就加强了关系,不用还是我只知道你的存在。聚合可以方便的持有多个类的引用,如使用List<>,所以当你发现有List<>等集合是可以使用聚合来表示,比如观察者模式的结构。组合,体现最强的关系,比如人出身了,必定也有头部吧,不然我真无法想象这个世界了。
说下最基本的依赖注入方式吧,一种是setter方法注入,如聚合关系中提现的,使用一个方法来完成注入,另一种是构造函数注入,如组合关系中提现的,还有一种是接口注入,一般不常用也就不说了。以后会详细在番外篇中讲解。
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
UML类关系描述图里箭头的使用
UML类关系描述图里箭头的使用 UML类关系描述图里箭头的使用。但是两者实际上存在如下的对应关系://///////////////////////////////////////////《设计模式》 UML 表示的意义聚合 组合 聚合/组合 对...
详解UML类图
详解UML类图。合成(组合)表示一种强的‘拥有’关系,提现了严格的部分和整体的关系,部分和整体的生命周期一样(鸟和翅膀的关系),合...
UML?类图中聚合和组合的区别
由上图知道,Wheel类扮演wheels角色,聚合4个到Car对象里面去。UML类图符号中空心的菱形表示Wheel对象并不随Car的创建而创建,销毁而销毁。UML类图符号中实心菱形表示Department对象随Company对象的创建而...
UML 类图
UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。结构元素包括...
流程图、UML图、ER图
流程图、UML图、ER图流程图。最常见,主要看有哪些常见符号UML图。组合和聚合:一个实心箭头一个空箭头常见图。对象图同类图。交互图-时...
UML类图
依赖是一种使用关系,如果类为了实现某一功能,而使用其他类为参数或者调用了其他类的方法,使用了其他类的参数,这是即产生了依赖关系。关联关系是一种结构化关系,例如骑手和马的关系、学生和课程的...
UML
当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚合关系。生命周期的实现上,组成...
两张图示轻松看懂 UML 类图
两张图示轻松看懂 UML 类图一个类如何表示。格式:权限 属性名:类型 [ = 默认值 ]权限:private、public 、protected、default,它们分...
UML类图几种关系的总结
UML类图几种关系的总结UML类图几种关系的总结 收藏 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization)...
微信扫码,在手机上查看选中内容