UML类图和关系

StephenYue

UML类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

类图基本元素

类、接口、关系,只简单介绍一下这三种元素。

类是对具有相同属性和行为的对象,抽象出来的一种数据结构,是面向对象设计的核心结构。图示如下:

类名、属性、行为三部分组成。

    • 类名格式:字符串
    • 属性格式:可见性 名称:类型 [ = 缺省值 ]
    • 行为格式:可见性 名称(参数列表) [ : 返回类型]
    • 参数格式:类型 名称
    1. 可见性:表示元素对于类外的元素而言是否可见,包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。
    2. 名称:标识名,用字符串表示。
    3. 类型/返回类型:表示数据类型,可以是基本数据类型,也可以是引用数据类型。
    4. 缺省值:是一个可选项,园所默认值。
    5. 参数:多个参数用逗号“,”分隔。

    接口

    描述行为的集合。图示如下:

    接口名和操作两部分组成。

    • 接口名格式:字符串
    • 行为格式:名称(参数) [ : 返回类型]
    • 参数格式:类型 名称
    1. 名称:标识名,用字符串表示。
    2. 返回类型:表示数据类型,可以是基本数据类型,也可以是引用数据类型。
    3. 参数:多个参数用逗号“,”分隔。

    注:<<接口名>>中的尖括号不一定非要有。如实现关系就一种,接口的泛化关系只是标识行为没有属性。

    关系

    类图中的元素存在六种基本关系。分别是:实现,泛化,组合,聚合,关联和依赖。

    类图元素的关系

    实现(Realization)

    表示类对接口的实现操作,类具有接口的所有行为。用带有空心三角箭头的虚线表示,箭头指向接口。 实线图示如下:

    泛化(Generalization)

    类或接口之间的继承,表示通用与具体的差异。用带有空心三角箭头的实线表示,箭头指向父类。图示如下:

    组合(Composition)

    整体与部分的关系,部分不能离开整体而单独存在。整体和部分生命周期一样,同生同死。用带有实心菱形的实线表示,菱形指向整体。图示如下:

    聚合(Aggregation)

    整体与部分的关系,部分可以离开整体而单独存在。整体对部分只是有使用权。整体和部分的生命周期是独立存在的。用带空心菱形的实心线表示,菱形指向整体。图示如下:

    关联(Association)

    同级类之间的引用,彼此不存在包含关系,引用者知道被引用者的属性和行为。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。
    用带普通箭头的实心线表示,箭头指向被引用者。图示如下:

    依赖(Dependency)

    一个类的实现依赖另一个类的数据。
    带箭头的虚线,指向被使用者。图示如下:

    总结

    • 实现:类实现接口。
    • 泛化:类或接口之间的继承。
    • 组合:结构上整体和部分不能分开,生命周期一样,由整体维护。
    • 聚合:结构上整体和部分能分开,各自维护自己的生命周期。
    • 关联:类之间存在使用和被使用关系。
    • 依赖:一个类用到另一个类的数据。

    关系的强到弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。

    阅读 3.6k

    你以为的都是理所当然

    127 声望
    2 粉丝
    0 条评论

    你以为的都是理所当然

    127 声望
    2 粉丝
    文章目录
    宣传栏