前言

UML类图形象反映系统类之间的关系,大家非常常用。小弟不才,偶尔使用,往往每次使用都得查询各种关系的表示方式。终于,这次认真看了几遍,打算记起来。

注意

记忆方法只是本人联想,用于加强记忆。与该表示方式的来源没有半点关系。

元素

类和接口

  • +表示public,-表示private。正代表公开,负代表私密,很正常。

类之间的各种关系

泛化、实现

  • 泛化(可以看成继承)和实现都用三角形来表示。
  • 实现,由“无实现”到“有实现”。没东西是不是比较虚啊,所以用的是虚线。
  • 泛化,原来就有实现,只不过在此基础上扩展。本身就很强,用实线。
  • 在Java中的表现,泛化,就是继承;实现,就是实现嘛,被实现的可以是接口,或抽象类。

聚合、组合

  • 聚合、组合都是用菱形表示。他们都是多个对象聚集而成,所以体积比较大,你看菱形是不是比三角形、箭头要大一点。
  • 两者都是用实线。
  • 聚合,是聚集起来合成在一起的。比如人员聚集起来合成一个团队,如果团队解散了,但人员还存在。是弱依赖关系,所以用空心的菱形。
  • 组合,是(结构)组成合成在一起的。比如树木组成森林,如果森林消失了,树木也消失了。是强依赖关系,所以用实心的菱形。

关联、依赖

  • 关联、依赖都是由箭头表示(除了箭头,也想不到其他更合适的了)。
  • 关联,是静态的、非运行时的关系(什么是非运行时的关系?用Java代码来说,A关联B,那么B是A的一个属性,顿时领悟了吧)。那么稳定的关系,当然用实线了。
  • 依赖,是临时的、运行时的关系(用Java代码来说,就是参数嘛),临时的关系,用虚线表示也合理。

参考的资料

【UML】如何记忆UML类图的画法的更多相关文章

  1. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  2. UML基础系列:类图

    类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联.依赖.聚合等,还包括类的内部结构(类的属性和操作).类图描述的是静态关系,在系统的整个生命周期中都是有效的.对象图是类图的实 ...

  3. Uml 建模 一(类图建模和startuml的使用)

    本文将分三个部分介绍Uml建模:Uml建模的作用.类图.startuml的使用 Uml的作用 本文以java为例介绍Uml,在当前的软件开发中大多数使用面向对象开发(OO),面向对象的就是将现实世界中 ...

  4. UML类图基本画法

    转自:http://www.cnblogs.com/import-this/p/5330501.html 1. 类 类包括属性方法 下图的生命就是属性 代谢就是方法 2.基本关系 a.泛化(Gener ...

  5. UML类图的画法

    http://blog.csdn.net/kevin_darkelf/article/details/11371353

  6. UML类图画法及其之间的几种关系(转)

    UML类图画法及其之间的几种关系 最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下. 文章目录如下: 类图画法 类之间的 ...

  7. UML类图画法及其之间的几种关系

    最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下. 文章目录如下: 类图画法 类之间的几种关系:泛化(Generaliz ...

  8. [UML]UML系列——类图Class

    相关文章       [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...

  9. (转)面向对象——UML类图设计

    背景:一直以来,对UMl类图的画法不甚理解,但是随着学习的深入,发现熟练掌握UML类图,能够更好理解代码间的逻辑性,而这也是程序设计的基础所在,所以很有必要把UML好好掌握. UML类图新手入门级介绍 ...

随机推荐

  1. Java配置----JDK开发环境搭建及环境变量配置

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  2. 布朗语料库中条件概率分布函数ConditionalFreqDist使用

    布朗语料库中使用条件概率分布函数ConditionalFreqDist,可以查看每个单词在各新闻语料中出现的次数.这在微博情感分析中非常有用,比如判断feature vector中代表positive ...

  3. JS-页面操作

    --刷新页面 window.location.reload();

  4. 对蓝牙profile的理解

    蓝牙profile协议概览.pdf 之所以把Profile翻译为配置文件,是为避免和JavaME中的简表混淆.配置文件也是蓝牙 SIG官方网站给出的标准翻译. 想要使用蓝牙无线技术,设备必须能够翻译特 ...

  5. UIWebView如何获取内容高度

    iOS UIWebView如何获取到内容的高度呢?我们经常会遇到项目中需要使用UIWebView来加载H5页面,但是页面的高度并不确定,而我们前端需要根据内容的高度呈现出来,且不允许webview滚动 ...

  6. play for scala 在模板中格式化Date

    在play模板中格式化Date非常简单,只要编写一个静态函数,然后在模板中直接使用就可以了.如编写Html.scala package utils import java.text.SimpleDat ...

  7. LeetCode Kth Largest Element in an Array

    原题链接在这里:https://leetcode.com/problems/kth-largest-element-in-an-array/ 题目: Find the kth largest elem ...

  8. LeetCode Range Sum Query 2D - Mutable

    原题链接在这里:https://leetcode.com/problems/range-sum-query-2d-mutable/ 题目: Given a 2D matrix matrix, find ...

  9. python_os

    1. 基本功能的介绍 os模块包含普通的操作系统的功能 2. 常用的变量 (1)os.name 获取正在使用的平台, Windows 返回 nt, Linux或者Unix 返回 posix 3. 常用 ...

  10. 关于SqlParameter设定size和value

    1.设定size 字段定义:column [Text] nvarchar(max) NULL 设定字段最大长度: new SqlParameter("@Text",SqlDbTyp ...