类图(ClassDiagram) 是描述类、接口、协作以及它们之间关系的图,用来显示系统中
各个类的静态结构。类图是一种模型类型,确切地说,是一种静态模型类型。
类图是面向对象系统建模中最常用的图,它是定义其他图的基础,在类图的基础上,可
以使用状态图、协作图、组件图和配置图等进一步描述系统其他方面的特性。
类图包含7 个元素:类(Class)、接口(1nterface )、协作(Collaboratio川、依赖关系
( Dependency )、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization) 。
说明:其实还有聚合、组合。
另外,所谓的协作,其实就是指各类、接口间存在的各种关系。因此,各类间一般不是孤立存在的。
注意:
A) 在UML中,公有类型用"+"表达,私有类型用"-"表达,而受保护类型则用"# "表达。UML的类中不存在
默认的可见性,如果没有显示任何一种符号,就表示没有定义该属性的可见性。
B) 。类中操作的可见性主要包括公有(PubliC)、私有(Private)、受保护(Protected)
和包内公有(Package) 4种,分别用"+"、"-"、"#"和"~"来表示。
其中,只要调用对象能够访问操作所在的包,就可以调用可见性为公有的操作;只有属
于同一个类的对象才可以调用可见性为私有的操作,只有子类的对象才可以调用父类的可见
性为受保护的操作:只有在同一个包里的对象才可以调用可见性为包内公有的操作。
----------------------
UML定义了4种基本依赖类型,分别是使用(Usage) 依赖、抽象CAbstraction) 依赖、
授权(Permission) 依赖和绑定CBinding) 依赖.其中,使用依赖是类中最常用的依赖。
在实际建镇中.3 种情况下产生使用依赖:客户类的操作需要提供者类的参数:客户类的
操作返回提供者类的值;客户类的操作在实现中使用提供者类的对象。使用的构造型
包括调用和实例。在实际建模中,调用依赖和参数依赖较少被使用。发送依赖规定
客户把信号发送到非指定的目标,实例化依赖则规定客户创建目标元素的实例。
---------------------
关联关系(Association )
关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。也
就是说,关联描述了系统中对象或实例之间的离散连接。关联的任何一个连接点都叫做关联
端,与类有关的许多信息都附在它的端点上。在UML中,关联关系用一条连接两个类的实
线表示。
---------------------
聚合(Aggregation )。聚合关系是一种特殊类型的关联,它表示整体与部分关系的
关联。简单的说,关联关系中一组元素组成了一个更大、更复杂的单元,这种关联关系就是
聚合。聚合关系描述了"has a" 的关系。在UML中,聚合关系用带空心菱形头的实线来表
示,其中头部指向整体。
---------------------
组合关系(Composition)。组合关系是聚合关系中的一种特殊情况,是更强形式的
聚合,又被称为强聚合e 在组合中,成员对象的生命周期取决于聚合的生命周期,聚合不仅
控制着成员对象的行为,而且控制着成员对象的创建和解构。在U孔伍中,组合关系用带实
心菱形头的实线来表示,其中头部指向整体。
---------------------
导航性(Navigation)。导航性描述的是一个对象通过链(关联的实例〉进行导航访
问另一个对象,即对一个关联端点设置导航属性意味着本端的对象可以被另 端的对象访问。
可以在关联关系上加箭头表示导航方向。只在一个方向上可以导航的关联称为单向关联
(Unidirectional Association),用→条带箭头的实线来表示,如图6-23所示:在两个方向上都
可以导航的关联称为双向关联(Bidirectional Association),用一条没有箭头的实线来表示。
另外,使用导航性可以降低类间的精合度,这也是好的面向对象分析与设计的目标之一。
----------------------
对象图<ObjectDiagram) 描述的是参与交互的各个对象在交互过程中某一时刻的状态·
对象图可以被看作是类图在某一时刻的实例。 在U阻中,对象图使用的是与类图相同的
符号和关系,因为对象就是类的实例。