在学设计模式的过程中经常碰到各式各样的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. 控制器的view的加载优先级

    拿到控制器后,控制器的view是在什么时候按照什么优先级创建加载的? 1.控制器内部的view是延迟加载 1> 用到时再加载(loadView) 2> 加载完毕后会调用控制器的viewDi ...

  2. 预载入和JavaScript Image()对象

    预载入和JavaScript Image()对象 很多high-res图像真的可以使 Web 站点更加整洁.但是它们也会使站点的访问速度变慢——图像是文件,文件使用带宽,带宽直接与等待时间相关.是该了 ...

  3. how to create virtual network in OS X 10.9

    ifconfig lo0 alias 172.16.123.1 will add an alias IP 172.16.123.1 to the loopback adapter sudo ifcon ...

  4. js禁止中文输入 最简洁的【禁止输入中文】

    方法一:禁止中文输入法 <input type="text"  > 方法二:禁止黏贴,禁止拖拽,禁止中文输入法! 这种方法是最强的禁止 中文输入 <input t ...

  5. Cube(hd1220)

    Cube 点我 Problem Description Cowl is good at solving math problems. One day a friend asked him such a ...

  6. nginx自定义模块编写-根据post参数路由到不同服务器

    nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自 ...

  7. Genymotion如何访问本地服务器?

    找到原因了,其实跟Genymotion没有关系,因为他本身是作为VirtualBox的一个虚拟OS在运行. 默认情况下,查看Genymotion的网络配置,是Host-Only模式: Microsof ...

  8. [置顶] access函数-linux

    表头文件 #include<unistd.h> 定义函数 int access(const char * pathname, int mode); 函数说明 检查是否可以读/写某一已存在的 ...

  9. JOSM学习下载地址

    JOSM is an extensible editor for ​OpenStreetMap (OSM) written in ​Java 7. Currently it supports load ...

  10. 2.x ESL第二章习题2.5

    题目 描述 $y_i=x_i^T\beta+\epsilon_i$$\epsilon_i\sim N(0,\sigma^2)$ 已有训练集$\tau$,其中$X:n\times p,y:n\times ...