原文链接:https://www.cnblogs.com/xsyblogs/p/3404202.html

我们通过一个示例来了解UML类图的基本语法结构。画UML类图其实有专业的工具,像常用的Visio等,都是很好的工具,楼主这里由于时间关系就不用专业的工具,如有欠缺之处,欢迎广大网友指出。图片比较大,建议大家用QQ影响查看器打开,它可以实现对图片缩放的时候不失真。

通过以上图片,我们可以看到UML中常用的表示方法。下面将图像拆开来细说一下。

首先看动物那个矩形框,它代表来了一个类(Class)。类图分3层,第一层表示类的名称,如果是抽象类,则用斜体表示。第二层是类的特性,通常表示字段和属性。第三层是类的操作,通常是行为和方法。注意第二层和第三层前面的符号,有“+”,“—”,还可能有“#”,这代表什么含义呢?“+”代表public,“—”代表private,而“#”则表示protected。

再看飞翔这个矩形框,它表示一个接口图,和类图的区别就是顶部有interface字样,第一行表示接口名称,第二行表示接口方法。接口还有另一种表示方法——棒棒糖表示法。图中唐老鸭实现讲人话的接口。

类和类之间的继承关系,用实线+空心三角形表示,如下图。

类和接口之间的实现关系用虚线+空心三角形表示,如下图,表示实现接口。

关联用实线箭头表示。

聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不一定是A对象的一部分。聚合用空心的菱形+实线箭头来表示。

合成(也说组合)是一种强的拥有关系,体现了严格的整体和部分的关系,部分和整体的生命周期一样。示例中鸟和其翅膀就是组合关系,因为他们是部分和整体的关系,并且翅膀和鸟的生命周期一样。

另外还有依赖关系,就像动物依赖于空气和水一样。依赖关系用虚线箭头来表示。

UML之类图详解的更多相关文章

  1. UML类图详解_关联关系_一对多

    对于一对多的示例,可以想象一个账户可以多次申购.在申购的时候没有固定上限,下限为0,那么就可以使用容器类(container class)来搞,最常见的就是vector了. 下面我们来看一个“一对多” ...

  2. UML类图详解_关联关系_多对一

    首先先来明确一个概念,即多重性.什么是多重性呢?多重性是指两个对象之间的链接数目,表示法是“下限...上限”,最小数据为零(0),最大数目为没有设限(*),如果仅标示一个数目级上下限相同. 实际在UM ...

  3. UML类图详解

    下面是类图的实例: (注:飞翔接口那里应为空心三角形) UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’):依赖:虚线+箭头(动物和空气的关系):关联:实线+箭头(企鹅需要知道气候才迁移 ...

  4. UML 序列图详解

    现在是二月,而且到如今你或许已经读到.或听到人们谈论UML 2.0 —— 包括若干进步的 UML 的新规范,所做的变化.考虑到新规范的重要性,我们也正在修改这个文章系列的基础,把我们的注意力从 OMG ...

  5. UML 类图详解

    转载来源:http://blog.csdn.net/shift_wwx/article/details/79205187 可以参考:http://www.uml.org.cn/oobject/2012 ...

  6. UML类图详解_泛化关系

    泛化其实就是继承关系,还是比较简单的,那么我们就把之前有些问题的博客UML类图重新来实现一次. 依旧是这个图 下面我们来看一个例子 Account.h #include <cstdlib> ...

  7. UML类图详解和示例

    ps:博客园markdown不能自动生成列表,更好的阅读体验可访问我的个人博客http://www.isspark.com/archives/UMLDescription UML类图概述 什么是UML ...

  8. UML类图详解_组合关系

    组合关系和聚合关系有一个最大的不同,组合关系中的整体直接掌握部件的生灭,聚合关系中的整体并不具有生灭部件的权力.一旦组合中的整体不存在时,其组合部件也不能单独存在,必须同时消灭.另外,外界也不能直接与 ...

  9. UML类图详解_关联关系_多对多

    在关联关系中,很多情况下我们的多重性并不是多对一或者一对多的,而是多对多的. 不过因为我们要考虑里面的导航性,如果直接搞的话就是需要去维护两群对象之间多对多的互指链接,这就十分繁杂且易错.那么我们怎么 ...

随机推荐

  1. stm32下载程序,拔了调试器不能运行程序解决方案

    A:肯定是只拔了仿真器与电脑连接的那端,然后把另外端依然接在板子上.我说的没错吧 B: 对的,这样就会一直复位吗 这是复位的问题,当JLINK在板子上连接的时候,断电情况下,会一直把RESET拉低,导 ...

  2. IOS ipa安装不上 e8000087

    iPhone5是32位的,所以按照64位编译出来的32位不支持,下面3种方案的,选择第3中就可以了. 5S是64位. e8000087: Your iOS device does not suppor ...

  3. CSS a 标签样式

    CSS a 标签样式 a:LINK { color: red; } a:VISITED { color: yellow; } a:HOVER { color: green; } a:ACTIVE { ...

  4. 【知识结构】最强Thymeleaf知识体系

    在开发一个小项目的时候,使用的是Spring Boot,Spring Boot 官方推荐的前端模板是thymeleaf, 花了两天时间将官方的文档看完并总结了下知识体系结构.转载请注明出处,https ...

  5. 关于微信公众号内嵌网页的几个meta标签

    最近在做微信公众平台内嵌app,其实也就是web app="=,不过就是基于微信内置浏览器(safari加了一个WeixinJS对象),稍微记一下几个html的meta标签(web app通 ...

  6. 如何用CURL将文件下载到本地指定文件夹

    若直接调用下载文件的url有重定向,则需先调用第一个方法,获取到跳转后的url,才可直接下载.否则需要手动点击浏览器的下载确定按钮. 调用示例: $imgpath = "http://www ...

  7. window - BOM对象

    Window 对象 Window 对象表示浏览器中打开的窗口. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外 ...

  8. SSM框架整合(Spring+SrpingMVC+Mybatis) 简单案例

    简介: SSM框架是Spring,SpringMVC 和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,dao层四层. Spring实现 ...

  9. error:crosses initialization of ...的解决办法

    switch(c) { case 0x01: int temp = a + b; .... break; case 0x02: break; default:break; } 此时会报如题所示错误 原 ...

  10. SpringBoot20 集成SpringSecurity02 -> 利用SpringSecurity进行前后端分离的登录验证

    1 SpirngBoot环境搭建 创建一个SpringBoot项目即可,详情参见三少的相关博文 参考博文 -> 点击前往 SpirngBoot项目脚手架 -> 点击前往 2 引入Spirn ...