概念介绍
面向对象设计的基础就是使用类。类是用来代表现实事物或者功能的构造块。类图是由若干类关联在一起,反映系统或者子系统组成机构的静态图。
类的定义是:类是具有相似结构、行为和关系的一组对象的描述符。类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及他们之间的关系。
构成
类:具有共同结构特征、行为特征、联系和语义对象集合的抽象形式。类包含类的属性、名字、操作、约束以及其他成分。类的命名尽量应用领域中的术语,应明确、无岐义,以利于相互交流和理解。类的属性、操作中的可见性使用+、#、-分别表示public、protected、private。
关系
关联是类与类之间的连接是类之间的一种很弱的联系,它体现的是两个类或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的。
泛化(继承)关系与用例图的泛化关系如出一辙,是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。面向对象的说法就是is a 的关系。例如:狗是动物的一种,即有狗的特性也有动物的共性。箭头指向父用例
聚合是一种特殊的关联,聚合表示整体与部分的关系。是一种has a的关系,此时整体与部分之间是可以分离的,他们有各自的生命周期,部分可以属于多个整体。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如舰队是由一系列的舰船组成。需求描述中“包含”、“组成”、“分为….部分”等词常意味着聚合关系。
组合关系是聚合关系中的一种特殊情况,比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束
依赖关系:有两个元素如果修改X的定义可能会导致对Y的定义,则认为Y依赖X。一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A。依赖关系可能由各种原因引起,如一个类向另一个类发送消息,或者一个类是另一个类的数据成员类型,或者一个类是另一个类的操作的参数类型等。有时依赖关系和关联关系比较难区分。
实现关系是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系,在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。