ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

统一建模语言UML---类图

2022-09-14 16:33:32  阅读:230  来源: 互联网

标签:关系 键盘 依赖 建模语言 接口 关联 --- 箭头 UML


什么是统一建模语言,来看看百科中的介绍
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
简单来说UML就是脱离于具体编程语言,以面向对象的形式,对产品进行说明的一种文档语言。
我们今天这里只说类图:Class diagram
类图是一种描述一个系统中类、接口的静态结构,以及静态关系的一种图。是最常用也是唯一可以直接映射成面向对象语言的图。
类图主要分为两部分:
1、类、接口的内部定义
2、类、接口之间的关系
这两部分都简单,我们逐一来看:(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
(一)类、接口的内部定义
结构如图:

主要分为三个部分:

类名、属性(字段)、方法(功能、能力)
类名:通畅采用大驼峰规范命名
属性:一般用以下格式
可见性 属性名称: 属性类型 [=默认值]
可见性如下表:

方法:一般用以下格式
可见性 方法名称: 返回类型
可见性的表达方式和属性的规范一样。我们来举个例子,如下图:

(二)类、接口之间的关系
这种关系存在类和接口之间,接口和接口之间,类和类之间。
我们一般将关系分为六种类型:

继承关系
实现关系

依赖
关联

聚合
组合

我一般将这些分为三类

1、继承和实现
这俩关系非常相像
继承关系,代表的是父类和子类之间的关系,这种类关系的耦合程度是最强的。我们一般用“实线+空心三角”的形式标记,箭头由子类指向父类。
实现关系,代表的是接口和实现类之间的关系,这种类关系的程度非常强,但是还是要弱于继承关系,我们一般用“虚线+空心三角”的形式标记,箭头由实现类指向接口。
如下图:机械键盘类继承自键盘类,键盘类实现了键盘接口。同时我们添加了UML的注释文件,解释了轴类型属性。(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )

实现(键盘接口+键盘):

 

继承(键盘+机械键盘):

 

2、聚合和组合
这俩关系也非常相近
都是代表一个类是另外一个类的组成部分,但是为了区分耦合的强弱关系,我们才进行区分:
聚合代表一个类是另外一个类的成员,但是可以独立开来,比如课桌和教室,黑板和教室,他们都属于教室的组成部分,但是可以独立存在,即使教室不存在了,课桌仍然可以独立存在,或者是用于其他教室。教室和课桌之间的依赖关系并不是共存亡,也就是相同生命周期的关系。
我们一般用“实线+空心菱心”的形式标记,菱形指向集合类。
组合形式则是更强的依赖关系。代表一个类是另外一个类的不可或缺的组成部分,如果缺失,那么集合类也不能再称之为该类,两者的生命周期一般是同步的。例如太阳系是由太阳+行星组成。如果如果没有太阳了,那么太阳系只能算作是一个 星云,不能再称之为太阳系。两者的生命周期是同步的。
再或者电脑是由显示器键盘主机等器件组成的,如果 没有主机,那么就不能称之为电脑,两者的生命周期是同步的,没有主机的一堆设备,不能称之为电脑。我们一般用“实线+实心菱心”的形式标记,菱形指向组合类。
要注意组合和聚合 其实没有特别明显的界限,二者的界限是有些模糊的。

聚合(学校+老师):

组合(电脑+键盘):

3、依赖、关联

这俩关系也非常相近
我们一般将非常弱,没有直接耦合,只存在于某个方法中的耦合关系(临时变量的使用)称为依赖关系。比如某个方法需要获取下时间,那么对时间类就是依赖。所以这种关系是类与类之间最弱的一种耦合关系,它只存在于方法的依赖中,并不是对象之间直接依赖。我们用“虚线+箭头”表示,箭头指向被依赖的对象。
关联关系是对象之间的直接饮用关系,这是类之间最常用的一种关系。我们一般将之称为一般关联关系、聚合关系、组合关系。上文中的说的聚合、组合关系就属于这里的关联关系。关联关系用“实线+箭头”表示,箭头指向被依赖的对象。如公司依赖员工,则公司指向员工,但是员工其实也可以同时在多加公司任职。所以员工可以也依赖不同公司,像这种互相依赖的我们称之为双向关联。双向关联我们用一根实线来表示。除此之外还有一种特殊情况,就是自关联,也就是一个类的某个属性还是自身,我们需要用箭头再指向自己。(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )

依赖(老师+书):

 

关联(司机+车):

双向关联(老师+班级):

 

标签:关系,键盘,依赖,建模语言,接口,关联,---,箭头,UML
来源: https://www.cnblogs.com/jilodream/p/16693511.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有