https://www.wendangku.net/doc/3d17150624.html,/javase/tutorial/java/concepts/对于面向对象的基本定义
类图
extends继承,指的是一个类(子类)继承另外的一个类(超类)的同一功能,并增加它自己的新功能。
类名BankAccount和withdrawal操作使用斜体。这表示,BankAccount 类是一个抽象类,而withdrawal方法是抽象abstract的操作。
关联是两个类间的联接双向&单向:
双向(标准)的关联
在图中存在两种方法表示软件包,你个人的判断:哪种更便于阅读你画的类图。
Implements实现接口
如图10 所示,一条带有闭合的单向箭头的点线意味着实现(或实施);正如我们在图 4 中所见到的,一条带有闭合单向箭头的实线表示继承。
聚合
聚合是一种特别类型的关联,用于描述“总体到局部”的关系。在基本的聚合关系中,部分类的生命周期独立于整体类的生命周期。
举例来说,我们可以想象,车是一个整体实体,而车轮轮胎是整辆车的一部分。轮胎可以在安置到车时的前几个星期被制造,并放置于仓库中。在这个实例中,Wheel类实例清楚地独立地Car类实例而存在。
然而,有些情况下,部分类的生命周期并不独立于整体类的生命周期-- 这称为合成聚合。举例来说,考虑公司与部门的关系。公司和部门都建模成类,在公司存在之前,部门不能存在。这里Department 类的实例依赖于Company类的实例而存在。
反射关联
当一个系统结构建模时,显示例子类实例有时候是有用的。
UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。
其中依赖(Dependency)的关系最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。
换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的整体与部分关系的关联,而组合是表明整体与部分之间有相同生命周期关系的聚合。
依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。一般来说,不应该存在双向依赖。
参考:https://www.wendangku.net/doc/3d17150624.html,/duanxz/archive/2012/06/13/2547801.html
依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。【单向】
?泛化(Generalization):通常所说的继承(特殊个体is kind of 一般个体)关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向一般个体。
?实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,
B realize A。这个关系最常用于接口。uml中用空心箭头和虚线表示Realize关系,箭头指向定
义约定的元素。
?关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。
?聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体has a 部分)的关系。
uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。
?组合/合成(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不
一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。
总结
实线虚
线
/
点
线
开
放
箭
头
>
闭
合
箭
头
实
心
箭
头
无
箭
头
两
箭
头
菱
形
实
体
菱
形
箭
方
【父、
VS
部】