UML模块中的任何事物都不是独立存在的,他们之间存在着一定的关系。下面就对这些关系,分类了解一下。
一.概念@H_403_7@
【关联】Association
两个类存在某种语义上的联系,关联有单向关联和双向关联。
【聚合】Aggregation
类之间是整体和部分的关系。”聚”表示聚在一起的意思,也表示“部分”可以独立”整体”存在。描述“has-a”的关系。
【组合】Composition
整体有管理部分的特有的职责并且他们有一致的生命期,部分不能脱离整体存在。描述“contains-a”的关系。
【泛化】Generalization
泛化是一般事物和该事物特殊种类之间的关系,描述类之间“Is a kind of”的关系。子类继承父类,又分为单继承和多继承,由名字可知:子类继承单个父类的属性和操作就是单继承。
泛化的通过修改父类而修改子类共同的属性和方法,实现代码的重用,也有利于系统维护。
【依赖】Dependency
是两个事物之间的使用关系。A依赖于B。当B发生改变的时候A也会改变。
【实现】Realization
用来规定接口和实现接口的类或组件之间的关系,不继承结构只继承行为。一个接口的实现,要先实现对应的类,一个类可以有多个接口。实现使用的情况:1.在接口与实现接口的类间。2.在用例以及实现该用例的协作间
二、实例@H_403_7@
【关联】一个人为一家公司工作
【聚合】书架上放着书
【组合】鸟和翅膀
【泛化】人类,分为男人和女人
【依赖】系统和单个窗体
【实现】篮球得分的方式。扣篮,投篮,罚球
三、Rational Rose表示@H_403_7@
【关联】
1.关联用横实线表示 2.employee表示person类扮演的角色 3.n和1表示多重性关系。一个公司有许多员工
【聚合】
1.聚合用带空心菱形头的实线表示 2.菱形头指向整体。
【组合】
在聚合的基础上把空心的变成实心的。
【泛化】
1.带空心箭头的实线表示 2.由子类指向父类 3.此图表示单继承
【依赖】
1.带箭头的虚线表示 2.A依赖于B,则A指向B
【实现】
1.带空心箭头的虚线表示 2.一个类可以有多个接口 3.类指向接口
四、对比分析@H_403_7@
1.聚合和组合是特殊的关联。某种意义上说,关联,泛化和实现都属于依赖关系的一种。
2.聚合和组合都表示部分和整体的关系。但是聚合表示部分能够脱离整体而存在。例如汽车和轮胎。而组合表示部分不能脱离整体存在。当整体不存在了,部分也就没有存在的意义。例如鸟和翅膀。不过同一个部分和整体在不同的环境中,表示也可能不同。例如对于汽车制造商来说,汽车和轮胎是聚合关系。而对于汽车销售商来说,汽车和轮胎就是组合的关系了。
3.这几种关系是语义级别的不同。按照关系表现的强弱依次是:泛化=实现>组合>聚合>关联>依赖