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