软件构造 UML的类图(class diagram)

class diagram

  • 1 定义
  • 2 类图表示法
    • 2.1 类的UML表示
    • 2.2 类之间的关系
      • 2.2.1 关联
      • 2.2.2 聚合
      • 2.2.3 组合
      • 2.2.4 继承(泛化)
      • 2.2.5 依赖

1 定义

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等,简单说就是类加上他们间的关系就构成了类图。类图是面向对象建模的主要组成部分,可以用来建模,通过实现这些类就能实现系统。

2 类图表示法

2.1 类的UML表示

一个类包括类名、属性、方法三部分,三部分从上到下表示为三个矩形框。
软件构造 UML的类图(class diagram)_第1张图片
在列出属性和方法时,使用+,#,-代表public,protected,private

  • 属性:
    可以采用列表的形式列出类中的所有属性,具体格式为:
    属性的可见范围+属性名+属性的类型
    示例:+ name: String 表示public String name;
  • 方法:
    方法可见性+方法名+返回值
    示例:+ getName(…):String

2.2 类之间的关系

类之间的关系包括关联、聚合、组合、继承、依赖。

2.2.1 关联

关联:可以为单向或者双向。
A单向关联B,则可以说A 包含一个 B,通常表现为全局变量。也就是A包含一个B的实例。
在单向关联中,两个类是相关的,但只有一个类知道关系存在。
在这里插入图片描述

关联是两个类之间的关联。关联总是被假定为双向的; 这意味着除非您将协会限定为某种其他类型,否则这两个类都会意识到彼此及其关系。
在这里插入图片描述
若一个类包含多个另一个类的多个实例,比如一个公司包含多个员工,而一个员工只有一个公司。
软件构造 UML的类图(class diagram)_第2张图片

2.2.2 聚合

聚合关系是单向关联的一种,但有区别,是一种特殊的关联。聚合表示整体和局部的关系,比如公司和雇员,雇员是公司的部分,公司破产了,雇员还可以继续存在加入其它公司。

2.2.3 组合

组合也是一种特殊的关联,也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。比如一个人不在了,那么他的身份证等都不在了。
聚合和组合的区别:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

2.2.4 继承(泛化)

是通过继承(extends)实现的,子类继承接口、抽象类、父类都属于这种关系。
软件构造 UML的类图(class diagram)_第3张图片

在类图中,继承关系呈现为带有指向父类的大型开放箭头的固定定向线。

2.2.5 依赖

依赖关系表示两个类之间的“使用”关系。在类图中,依赖关系呈现为虚线。
如果A类“使用”B类,即B类作为A类方法的局部变量、返回值、参数等或者A类中调用到了B类的方法。
在这里插入图片描述

你可能感兴趣的:(软件构造 UML的类图(class diagram))