UML类图新手入门级介绍

2010-11-12 19:45:00 monkey_d_meng 阅读数 27230  收藏 文章标签: umlinterfaceclass编程扩展更多

分类专栏: 软件工程
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

UML类图新手入门级介绍

举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法。

首先,看动物矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。前面的符号,+ 表示public,- 表示private,# 表示protected。

右下角的飞翔,它表示一个接口图,与类图的区别主要是顶端的<<interface>>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法。唐老鸭是能讲人话的鸭子,实现了讲人话的接口。

接下来的是类与类,类与接口之间的关系了。首先注意动物、鸟、鸭、唐老鸭之间的关系符号。它们都是继承的关系,继承关系用空心三角形 + 实线来表示的。

上述所列举的几种鸟中,大雁最能飞,让它实现了飞翔接口。实现接口用空心三角形 + 虚线来表示。

企鹅和气候两个类,企鹅是很特别的鸟,会游不会飞。更重要的是,它与气候有很大的关联。我们不去讨论为什么北极没有企鹅,为什么它们要每年长途跋涉。总之,企鹅需要知道气候的变化,需要了解气候规律。当一个类知道另一个类时,可以用关联(association)。关联关系用实线箭头来表示。

再来看大雁和雁群这两个类,大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation)关系。聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形 + 实线箭头来表示。

组合(Composition)是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。在这里鸟和其翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。组合关系用实习的菱形 + 实线箭头来表示。另外,你会注意到合成关系的连线两端还有一个数字1和数字2,这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就是n来表示。关系关系、聚合关系也可以有基数的。

动物的几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。他们之间是依赖关系(Dependency),用虚线箭头来表示。

编程是一门技术,更是一门艺术,不能只满足于写完代码后运行结果正确就完整,时常要考虑如何让代码更加简练,更加容易维护,容易扩展和利用,只有这样才可以真正得到提高。写出优雅的代码真的是一种很爽的事情。UML类图也不是一学就会的,需要有一个慢慢熟练的过程。所谓学无止境,其实这才是理解面向对象的开始呢。

[转帖]UML类图新手入门级介绍的更多相关文章

  1. UML类图新手入门级介绍

    UML类图新手入门级介绍 举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法. 首先,看动物矩形框,它代表一个类(Class).类图分三层,第一层显示类的名称,如果是抽象类,则就用 ...

  2. UML类图新手入门级介绍(转)

    首先,看动物矩形框,它代表一个类(Class).类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示.第二层是类的特性,通常就是字段和属性.第三层是类的操作,通常是方法或行为.前面的符号,+ ...

  3. [转帖]UML类图关系图解

    UML类图关系图解 https://www.cnblogs.com/TvvT-kevin/p/9357339.html 一.类结构 在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三 ...

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

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

  5. UML系列03之 UML类图(二)

    概要 在"UML系列02之 UML类图(一) "中介绍了类图的基本构成--类的UML表示方法.本文是接着前文,继续对"UML的类图"中几种关系进行介绍.介绍的主 ...

  6. 设计模式——1.概述&UML类图和时序图

    声明:本博客设计模式相关文章均整理和修改自网络,原文地址:图说设计模式 学习设计模式的3个层次—— 1.熟悉所有设计模式: 2.能够用代码实现: 3.运用到工作的项目中. 设计模式指导软件开发,学习设 ...

  7. UML类图介绍以及PlantUML使用方法

    类的UML表示方法 UML介绍 类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图.它形象的描述出了系统的结构,帮助人们理解系统. 类图是 ...

  8. UML类图介绍(转载)

    UML类图详细介绍   类图主要描述程序对象以及他们之间的关系.一般来说,类.接口.抽象类这些程序对象的区别很容易,但是他们之间六种关系以前总是理解不够深刻,这次进行了一次复习,顺便写成博文以便加深理 ...

  9. UML类图介绍及简单用法

    原文链接 一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和em ...

随机推荐

  1. 树莓派项目(三) 数字识别树莓派3+python3.5+opencv3.3+tensorflow1.7+keras

    https://blog.csdn.net/weixin_40707450/article/details/80290705

  2. 08_STP(数通华为)

    1. 网络拓扑 2. 激活生成树[SW1]stp mode stp [SW1]stp enable [SW2]stp mode stp [SW2]stp enable [SW3]stp mode st ...

  3. Falcor 学习一基本使用

    falcor 是netflix 公司为了解决自己api数据查询所开发的查询框架,很不错(尽管netflix 也在用graphql )以下是falcor 的 一个简单使用,基于express 框架,使用 ...

  4. Install Python3.6 on Amazon Linux/EC2 在Amazon Linux实例中安装使用Python3.6

    本文转载自 https://gist.github.com/niranjv/f80fc1f488afc49845e2ff3d5df7f83b 由于Amazon Linux中预装的Python版本为2. ...

  5. 洛谷 P5269 欧稳欧再次学车 题解

    P5269 欧稳欧再次学车 题目背景 请自行脑补一张欧稳欧学车的图 题目描述 欧稳欧学车时经常用一辆橡树车练习.这辆橡树车共有 \(N\) 个挡位,欧稳欧每秒可以把挡位增加或减少 \(1\),初始时( ...

  6. 原创:Kmeans算法实战+改进(java实现)

    kmeans算法的流程:   EM思想很伟大,在处理含有隐式变量的机器学习算法中很有用.聚类算法包括kmeans,高斯混合聚类,快速迭代聚类等等,都离不开EM思想.在了解kmeans算法之前,有必要详 ...

  7. SQL Mode

    SQL Mode简介 在MySQL中,SQL Mode常常用来解决以下问题: 1.通过设置SQL Mode,可以完成不同严格程度的数据校验,有效保证数据准确性. 2.通过设置SQL Mode为ANSI ...

  8. Learning to Learn and Predict: A Meta-Learning Approach for Multi-Label Classification

    Learning to Learn and Predict: A Meta-Learning Approach for Multi-Label Classification 2019-10-01 11 ...

  9. Attribute application@allowBackup value=(true) from AndroidManifest.xml:7:9-35

    1: 在 AndroidManifest.xml 配置文件中显式配置 android:allowBackup=false. 项目中代码 allowBackup="true" 改为 ...

  10. odoo开发笔记 -- odoo快速开发技巧

    1. 需求分析到位 2. 系统对接,角色用例,数据串接 ---确定,轻易不可变更 3. 业务流程拆分细化 出图--开发人员理解的地步 4. 数据模型建立 --对应角色用例 5. 确立开发计划,划分功能 ...