类之间的关系--关联、聚合、泛化、依赖
?????? 系统一般不会只包含一个类,而往往是由多个类组成的。寻找系统中类与类之间的相互关系,是建模必不可少、也是非常关键的一个过程。两个类之间的关系一般包括关联、聚合、泛化和依赖,还有实现关系。
?
1.关联
???????当两个类之间在概念上有连接关系时,类之间的连接成为关联。关联关系描述给定类的对象之间语义上的连接,它提供了不同类的对象可以相互作用的连接。
?????? 在Rose中,关联用一根连接类的实现表示,关联具有方向性,用箭头表示关联的方向。如果关联中部明确指明方向,则默认关联是双向的。
?????? 如下图所示,教师辅导学生,这是一种单向关联;驾驶员(人)驾驶汽车,而汽车上坐着驾驶员,这是一种双向关联。
?
????????????????????????? ???????
2. 聚合
?????? 聚合是类之间的一种整体与部分的关系,也就是说,一个整体类是由多个部分类组成的。部分类和整体类之间存在的这种关系称为聚合。例如,一辆汽车包括4个轮子、一台发动机、4个门等。如下图所示:
?
???????????????????????????????????????
?
????? 聚合体现了一种层次结构,整体类位于部分类的上层,多个部分类出于并列的层次。
?
3. 泛化
????? 面向对象的一个重要思想概念继承,继承是在现有类的基础上定义和实现一个新类的技术,刻画了类的一般性和特殊性。被继承的类称为父类或超类,继承的类称为子类。子类将父类作为自己的内容,并加入若干的新内容。子类继承父类的特性,特别是父类的属性和方法,通常,子类除了具有父类的属性和方法外,还有其它的属性和方法。
?????????????????????????????????????
4 依赖
????? 依赖是两个类之间的一种关系,其中一个类的变化将影响到另一个类,或向它提供所需的信息。依赖是一种将数种不同的建模关系组织到一起的简便方法。
???? 类的依赖关系显示一个类引用另一个类。被引用的类的规范改变时可能会影响使用类。如下图所示:
????????????????????????????????????????
类System引用Form,以实现DisplayForm的操作,如果类Form有变化的话就会影响System类,所以我们可以说System依赖Form,它们之间存在依赖关系。
?
5.?实现
???? 实现关系比较简单,类和接口之间的关系就是实现关系,表示类实现接口提供的操作。如图:
?????????????????????????????????????????
?
?
?