UML 类图

4 篇文章 0 订阅

部分摘自 Wikipedia

类图是软件工程的UML一种静态结构图,该图描述了系统的类集合,类的属性和类之间的关系。
类图是面向对象式的建模。他们一般都被用于概念建模(conceptual modelling)的系统分类的应用程序,并可将模型建模转译成代码。

在这里插入图片描述

  • 最上面是类名称
  • 中间包含类的属性
  • 底部包含类的方法

成员修饰

UML提供机制,以代表类的成员,如属性和方法,对他们的其他信息。
指定一个类成员(即任何属性或方法)的可见性有下列符号,修饰符号必须放在成员的名字之前:

  • + 表示公共(public)
  • -表示私有(private)
  • #表示保护(protected )
  • ~表示包(package)即对包内其他成员可见,也就是包权限
  • _表示静态(static)
  • /表示推导(即由其他属性推导得出,不需要直接给定其值)表示抽象

在这里插入图片描述

关系

关系符号

在这里插入图片描述

实例关系
  • 外部链接
    外部链接(External links)是对象之间的基本关系。

  • 泛化
    泛化(Generalization),即继承的反方向,指的是一个类(称为父类、父接口)具有另外的一个(或一些)类(称为子类、子接口)的共有功能。子类可视为其父类的特例,并可以增加新功能。用带空心三角形箭头的实线表示。
    在这里插入图片描述

  • 实现
    实现(Realization)指的是一个class类实现interface接口(可以是多个)的功能;在Java中此类关系通过关键字implements明确标识。用带空心三角形箭头的虚线表示。
    在这里插入图片描述

  • 依赖
    依赖关系(Dependency)可以简单的理解为一个类A使用到了另一个类B," … uses a …",被依赖的对象只是作为一种工具在使用,而并不持有对它的引用。而这种使用关系是具有偶然性、临时性的、非常弱的,但是B类的变化会影响到A;表现在代码层面,为类B作为参数被类A在某个method(方法)中使用。用带燕尾箭头的虚线表示。表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系。
    在这里插入图片描述

  • 关联
    人与杂志是一种关联
    一个关联(Association)代表一个家族的联系。关联可以命名,可以饰以角色名称,有权指针,多重性,可视性,以及其他属性(如相互关联和有方向的(带燕尾箭头的实线表示)关联)。在语义上是两个类之间、或类与接口之间一种强依赖关系,是一种长期的稳定的关系," … has a …" 。关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”、“了解”的含义。某个对象会长期的持有另一个对象的引用,关联的两个对象彼此间没有任何强制性的约束,只要二者同意,可以随时解除关系或是进行关联,它们在生命期问题上没有任何约定。被关联的对象还可以再被别的对象关联,所以关联是可以共享的。 在代码层面上,被关联类以类属性的形式出现在关联类中,也可能是关联类引用了一个类型为被关联类的全局变量。当前定义有五种不同类型的关联。双向(Bi-directional)和单向(uni-directional)的关联是最常见的。
    在这里插入图片描述

  • 聚合
    聚合(Aggregate)是表示整体与部分的一类特殊的关联关系,是“弱”的包含(" … owns a …" )关系,成分类可以不依靠聚合类而单独存在,可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享(sharable)。
    例如,池塘与(池塘中的)鸭子。再例如教授与课程就是一种聚合关系。又例如图书馆包含(owns a) 学生和书籍。即使没有图书馆,学生亦可以存在,学生和图书馆之间的关系是聚集。聚集可能不涉及两个以上的类。图形以空心的菱形箭尾与实线来表示。
    在这里插入图片描述

  • 组成
    组成(Composition)关系,是一类“强”的整体与部分的包含关系(" … is a part of …")。成分类必须依靠合成类而存在。整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。合成类别完全拥有成分类别,负责创建、销毁成分类别。
    例如汽车与化油器,又例如公司与公司部门就是一种组成关系。图形以实心的菱形箭尾与实线表示。
    在这里插入图片描述

关联、组成和聚集的差异

当一个类作为另一个类某个方法的参数时,为关联。
两者的差别主要描述了子类的生命周期的不同。组合关系中,一旦父类被销毁子类也会随之销毁;聚合关系中,子类的生命周期与父类独立。例如,一个大学包含若干个系(如化学系),每个系由若干名教授。如果大学撤销,这些系也就不复存在了,但这些教授仍会继续存在。还需注意,一名教授可以在不同系甚至不同学校兼职,而一个系不能属于两所大学。所以,大学与系之间是组成关系,而系与教授是聚合关系。
在这里插入图片描述

类关系
  • 概括
    概括(Generalization),是指类与类之间的共通性,通常会具有继承(inherit)的关系。图形以实线和空心箭头来表示。

  • 实现
    UML建模时,一个实现(realization)关系是两个模型元素之间的关系,其中一个模型元素(客户端)实现的行为,其他模型元素(供应商)指定。图形以虚线和空心箭头来表示。

一般关系
  • 依赖
    依赖(Dependency)是一种弱化形式的关系,表示一类依赖于另外的类,因为类在某个时间点使用另一个类。

  • 多重
    关联多重性(Multiplicity)是用来定义参与对象数量,每个参与类都必须指定多重性值,例如class A会有多少个instance与class B的多少个instance关连在一起,在现实生活中,一个汽车驾驶与汽车个数就是多重关系,可以是一对多,或是多对多。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值