类图是用于描述类、接口和其他复杂数据结构之间的关系的一种图形化表示工具。类图是UML(统一建模语言)的一部分,为软件开发人员提供了一种可视化的方式来理解和管理复杂的系统架构。在类图中,类是基本组成单元,表示具有共同属性和方法的对象。接口是一组操作的集合,可以被类或其他接口实现。关联表示类之间的链接关系,通常使用实线表示。聚合是一种特殊类型的关联,表示一种“整体-部分”的关系。继承表示一种“is-a”关系,子类继承父类的属性和方法 。
接口是一种特殊的抽象类,它只包含操作但不包含属性,且它没有对外界可见的关联。
类之间的关系最常见的有四种:依赖关系、泛化关系、关联关系、实现关系。其中,依赖关系表示两个或多个模型元素之间语义上的关系。在UML中,依赖用一个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类。UML定义了4种基本依赖类型,分别是使用(Usage)依赖、抽象(Abstraction)依赖、授权(Permission)依赖和绑定(Binding)依赖。
泛化关系是一种存在于一般元素和特殊元素之间的分类关系,它只使用在类型上,而不是实例上。在类中,一般元素被称为超类或父类,而特殊元素被称为子类。在UML中,泛化关系用一条从子类指向父类的空心三角箭头表示。
关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。也就是说,关联描述了系统中对象或实例之间的离散连接。在UML中,关联关系用一条连接两个类的实线表示。关联关系有6种对应的修饰,它们分别是:名称、角色、多重性、聚合、组合和导航性。
UML中的多重性是指一个关联对象可以有多个实现,多重性可以用来表达一个取值范围、特定值、无限定的范围或一组离散值。
聚合关系表示整体和部分关系的关联。聚合关系描述了“has a”的关系。在UML中,聚合关系用带空心菱头的实线来表示,其中头部指向整体。
组合关系是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合。在组合中,成员对象的生命周期取决于聚合的生命周期,聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和析构。在UML中,组合关系用带实心菱头的实线来表示,其中头部指向整体。
导航性描述了一个对象通过链(关联的实例)进行导航访问另一个对象,即对一个关联端点设置导航属性意味着本端的对象可以被另一端的对象访问。可以在关联关系上加箭头表示导航方向。只在一个方向上可以导航的关联称为单向关联(Unidirection Association),用一条带箭头的实线来表示。在两个方向上都可以导航的关联称为双向关联(Bidirection Association),用一条没有箭头的实线来表示。另外使用导航性可以降低类之间的耦合度,在也是好的面向对象分析与设计的目标之一。
实现关系是规格说明和其实现之间的关系,它将一种模型元素与另一种模型元素连接起来,比如类和接口。泛化和实现关系都可以将一般描述与具体描述联系起来。泛化将同一语义层上的元素连接起来,并且通常在同一模型内。实现关系则将不同语义层内的元素连接起来,通常建立在不同的模型内。实现关系通常在两种情况下被使用:在接口与实现该接口的类之间;在用例以及实现该用例的协作之间。在UML中,实现关系的符号与泛化关系的符号类似,用一条带指向接口的空心三角箭头的虚线表示。
类图和对象图是UML(统一建模语言)中的两种图形表示方式,它们的主要区别在于它们描述的对象不同。 类图描述的是系统中的类、接口、关系等静态结构,是对类和对象之间关系的抽象描述;而对象图描述的是参与交互的各个对象在交互过程中某一时刻的状态,可以被看作是类图在某一时刻的实例 。