UML学习——简述类以及类之间的关系
计算机所实现的各种程序,本身就是对现实世界的一种真实性模拟,无论是小程序,还是大程序,都不可避免地依照现实世界尽可能模拟甚至通过模拟超越现实。
真实世界是由各式各样的事物所组成,每种事物都有它特有的结构和行为,而且在联系起不同事物之后,还能够展现出丰富多元的能力;在面相对象的编程思想中,将事物以类的形式定义,类和类之间的关系就是不同事物的联系,由类和类之间的关系将真实世界以计算机程序来模拟真实世界。
面向对象概念是UML的基础,在学习使用UML的同时,也就是在应用面向对象概念;头脑里装有面向对象的概念,才能将需求文件内容以UML图的形式表述出来,UML与面向对象概念两者互为表里。
类是面向对象的基础,包括属性和方法两部分,属性表述类的特征,方法表证了类的行为;不同类之间的关系共同模拟了复杂的真实世界,实现了计算机程序对现实世界的真实模拟。
在面向对象和UML的概念中,类和类之间的关系,主要有:泛化关系、依赖关系、关联关系、聚合关系、组合关系。
1、泛化关系(Generalization)表现为继承或实现关系(is a),具体形式为类和类
之间的继承关系、接口和接口之间的继承关系、类和接口之间的实现关系。
2、依赖关系(Dependency)表现为函数中的参数(use a);是类和类之间的连接,
表示一个类依赖另一个类的定义,其中一个类的变化将影响另外一个类,如果
A类依赖于B类,则B类体现为局部变量,方法的参数、或静态方法的调用。
3、关联关系(Association)表现为变量(has a);类和类之间的联接,它使一个类
知道另一个类的属性和方法,如果A关联于B,则B体现为A的全局变量,即作为A的属性。
4、聚合关系(Aggregation)是关联关系的一种,是强的关联关系,强调整体与个
体的关系;普通关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次,一个是整体(Whole),一个是部分(Part),是一种弱的“拥有”
关系。
体现的是A对象可以包含B对象,但B对象不是A对象的组成部分,即A和B的生命周期不一样;具体表现为,如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建,A和B拥有不同的生命周期。
5、组合关系(Composition)是关联关系的一种,是比聚合关系强的关系,是一种
强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。
如果A由B组成,表现为A包含有B的全局对象,并且B对象在A创建的时刻创建,A和B拥有相同的生命周期,二者一毁俱毁。
6、类和类之间关系的小总结:
泛化关系:表现为类和类之间、接口和接口之间的继承,类和接口的实现关系依赖关系:A依赖于B,则B作为A方法的参数或者静态方法对B的调用
关联关系:A关联于B,则B作为A的全局属性出现,但A和B属于同一层次聚合关系:A由B聚合,则B作为A的全局变量出现,强调B是A的部分,A 和B的生命周期不相同
组合关系:A由B组合,则A包含有B的全局对象,B对象在A创建的时刻创建,A和B拥有相同的生命周期,强调A全然拥有B,多为内部类。