在学设计模式的过程中经常碰到各式各样的UML类图。那些眼花缭乱的符号有什么含义呢?

类图含义

类图中的关系

从网上找来一张图作为实例

  • 依赖关系:比如动物依赖氧气和水,这里如学生要依赖自行车。用虚线箭头表示。

  • 关联关系:学生和身份证是关联关系,候鸟与气候是依赖关系。这里用一根实线表示,也有版本用实线箭头表示。

  • 组合关系:一种强的拥有关系,体现了严格的部分和整体的关系。没有了整体,部分也不存在。比如,如果没有鸟也就没有了翅膀,没有了翅膀,也就不能成为一只完整的鸟。这里比如没有发动机,小汽车就不能行驶,没有小汽车这个整体,发动机也没有用处。也有翻译为合成关系的。用实心菱形和实线表示。

  • 聚合关系:一种弱的拥有关系。体现的是A对象可以包含B对象,但是B对象并不一定是A对象的一部分.比如这里的学生和班级的关系。这里用空心菱形和实线表示。

  • 实现关系:也好理解,现实中这种东西是抽象的,无法直接用来定义对象,只有具体的子类才可以用来定义对象。这里用空心三角形和虚线表示。

  • 继承关系:这个关系最容易理解。比如SUV继承小汽车空心三角形。继承关系用空心三角形和实线表示。

UML类图在设计模式中有非常重要的作用。要学会用类图表示各种设计模式。

画类图的工具

可以用viso画。打开软件点击新建,选择软件和数据库,创建即可。然后进入软件后,有各种形状和结构,拖拽到页面上即可。编辑数据的话,可以右键点击属性,点击类,可以更改名称,点击特性可以增加属性,点击操作,可以增加方法。

设计模式之UML类图的更多相关文章

  1. 设计模式之UML类图的常见关系

    设计模式之UML类图的常见关系 本文来自转载 烧点饭博客 本篇会讲解在UML类图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association), ...

  2. 北风设计模式课程---UML类图各符号含义

    北风设计模式课程---UML类图各符号含义 一.总结 一句话总结: 用脑子,挺好记的:实线关系肯定比虚线重,箭头.三角形.菱形的关系肯定依次加重,三角形是继承和实现, 1.UML类图中 线+箭头 表示 ...

  3. 23种常用设计模式的UML类图

    23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源码)与<设计模式:可复用面向对象软件的基础>(源码)两书中介绍的设计模式与UML图. 整 ...

  4. 图解Java设计模式之UML类图

    图解Java设计模式之UML类图 3.1 UML基本介绍 UML图 UML类图 3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一 ...

  5. 转载:23种常用设计模式的UML类图

    转载至:https://www.cnblogs.com/zytrue/p/8484806.html 23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源 ...

  6. 从零开始单排学设计模式「UML类图」定级赛

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  7. 【设计模式】UML类图及Java的类之间的关系

    UML类图展示 设计模式中的对象关系 关联和依赖的对比 依赖关系 虚线箭头 依赖是a类成员方法中有b类的属性,动物新陈代谢方法中有水和空气的属性,只有调这个方法的时候,才可能临时用一下 关联关系 实线 ...

  8. 设计模式之UML类图的常见关系(一)

    本篇会讲解在UML类图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association),聚合(Aggregation),组合(Compositio ...

  9. 设计模式之UML类图六大关系辨析【2】

    六大关系:继承(extends).实现(Realization).依赖(use-a).关联(association).聚合(has-a).组合(强聚合)(Composition). 类与类之间的强弱关 ...

随机推荐

  1. Mongoose的模糊查询

    var Commidity = require("./Model/commiditiesModel"); function search(response,request,key) ...

  2. 认证和注册,提交到App Store:

    账号分为个人和公司个人付费后2天左右,收到激活邮件,可以使用 member center certificates,identifiers&profiles:certificates 认证:d ...

  3. iOS数组、字典与json字符串的转换

    /*! * 将字典或者数组转化为JSON串 * * @param theData <#theData description#> * * @return <#return value ...

  4. ASP.NET,Razor语句中@符号的意义

    比较下面两段代码的区别: <td> @if (item.ModifyTime.HasValue) { @item.ModifyTime.GetValueOrDefault().ToStri ...

  5. theano安装

    theano安装有两类方法,一种是自己一步步安装,还有一种是借助其他软件安装.我是安装到一半发现第二种方法的...........所以就用的第一种麻烦的办法装的,但是过程也是一种学习. 电脑:win7 ...

  6. operator 类型转换符

    参考脚本之家的这篇博客   http://www.jb51.net/article/41333.htm 类型转换操作符(type conversion operator)是一种特殊的类成员函数,它定义 ...

  7. 国外程序员收集整理的PHP资源大全

    依赖管理 依赖和包管理库 Composer/ Packagist:一个包和依赖管理器 Composer Installers:一个多框架Composer库安装器 Pickle:一个PHP扩展安装器 其 ...

  8. select语句返回结果的顺序问题 .

    今天看到论坛上一个朋友的回帖内容,突然意识到自己好像从来没对SELECT语句做过任何思考,即便SELECT是平时使用最多的语句.自己建了两个测试表,内容如下: SQL> conn scott/t ...

  9. JVM GC之一找出不可达对象并回收

    JAVA运行时数据区域 1.程序计数器:当前线程所执行的字节码的行号指示器.一个处理器只会执行一条线程中的指令,为了线程切换后能回复到正确的执行位置,所以每条线程都需要一个独立的计数器.各条线程之间互 ...

  10. KNN(k-nearest neighbor的缩写)又叫最近邻算法

    KNN(k-nearest neighbor的缩写)又叫最近邻算法 机器学习笔记--KNN算法1 前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的 ...