单向关联和双向关联举例
统一建模语言(UML,Unified Modeling Language)是一种用于软件设计的可视化建模语言。其特点在于简单、统一、图形化,并能有效传达软件设计中的动态与静态信息。
一、类图概述
类图(Class diagram)主要展现了模型的静态结构,特别是模型中存在的类、类的内部构造以及它们与其他类的关系。类图不展示临时性信息,是面向对象建模的关键组成部分。
二、类图的作用
在软件工程中,类图作为一种静态结构图,详细描述了系统的类集合、类的属性和类间的关系,从而简化了人们对系统的理解。它是系统分析和设计阶段的重要产物,同时也是系统编码和测试的重要模型。
三、类图的表示方法
在UML类图中,类使用包含类名、属性(field)和方法(method)的矩形来表示,矩形内还包含分割线。例如,Employee类就包含有name、age和address这3个属性以及work()方法。
属性的完整表示包括可见性标识和类型等信息。如:“+”表示public,“-”表示private,“”表示protected。完整的属性表示为:“可见性 名称:类型 [= 缺省值]”。
方法的完整表示则包括方法名、参数列表和返回类型等信息。中括号中的内容为可选内容。
四、类与类之间的关系表示
1. 关联关系
单向关联:UML类图中用带箭头的实线表示,例如一个顾客有一个地址的关联。
双向关联:UML类图中用不带箭头的直线表示,如一个顾客购买多个商品的关系。
自关联:UML类图中用一个带箭头且指向自身的线表示,例如一个节点自己包含自己的情况。
2. 聚合关系与组合关系
聚合关系是整体与部分的关系,用带空心菱形的实线表示,菱形指向整体。例如学校与老师的关系。
组合关系是更强烈的聚合关系,用带实心菱形的实线表示,如头与嘴的关系,其中一旦整体不存在,部分也不存在。
3. 依赖关系
依赖关系是对象之间的临时性关联,用带箭头的虚线表示,箭头从使用类指向被依赖的类。例如司机与汽车的关系。
4. 继承关系
继承关系是父类与子类的关系,在UML类图中用带空心三角箭头的实线表示,箭头从子类指向父类。如Student类和Teacher类都是Person类的子类。
5. 实现关系
实现关系在UML类图中用带空心三角箭头的虚线表示,箭头从实现类指向接口。例如汽车和船都实现了交通工具的接口。