UML 定义的图形可以分为结构型(Structural UML Diagrams)和行为型(Behavioral UML Diagram)两种类型

结构型UML图包括:类图(Class Diagram)、组件图(Component Diagram)、复合结构图(Composite Structure Digram)、部署图(Deployment Diagram)、对象图(Object Diagram)、包图(Package Diagram)和轮廓图(Profile Diagram)

行为型UML 图包括:活动图(Activity Diagram)、通信图(Communication Diagram)、交互概览图(Interaction Overview Diagram)、序列图(Sequence  Diagram)、状态图(state Diagram)、时限图(Timing Diagram)和用例图(Use Case Diagram)

类图:

对应于java 代码

public class Queue{

private int capacity = 1000;

private ReentrantLock takeLock;

private ReentrantLock putLock;

public T take(){

T element = null;

return element;

}

public void put(T element){

}

}

2.2 类与类之间的关系

类与类之间的关系包括泛化(Generalization)、实现(Realization)、关联(Association)、依赖(Dependency)、组合(Composition)和聚集(Aggregate)

泛化

概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在java中用来表示继承的关系。

相当于java 语言中的 extends

表示方法:用实线空心三角箭头表示。

实现

概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述

表示方法:空心三角形箭头的虚线,实现类指向接口

依赖

概念:是一种使用的关系,即一个类的实现需要另一个类的协助。

java中,方法参数需要传入另一个类的对象,就表示依赖这个类。代码中一般指由局部变量,函数参数,返回值建立的对于其他对象的调用关系

表示方法:虚线箭头,类A指向类B。

关联

概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。关联关系从代码的层次可以理解为一个类拥有某个实例变量,该变量的类型为另外一个类,

java中一个类的全局变量引用了另一个类,就表示关联了这个类

表示方法:实线箭头,类A指向类B,也可以没有箭头,没有箭头代表是双向的。

上图代表的java 代码:

public class Person {

private Set mobilePhones = new HashSet();

}

class MobilePhone{

private Person owner = null;

}

聚合

概念:聚合关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。程序中聚合和关联关系是一致的,只能从语义级别来区分;

表示方法:尾部为空心菱形的实线箭头(也可以没箭头),类A指向类B

 例如,大学里的一个系(Department) 可以拥有若干个教师(Teacher)这里面系与教师之间的关系可以用下图表示:

组合

概念:组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。程序中组合和关联关系是一致的,只能从语义级别来区分。

表示方法:尾部为实心菱形的实现箭头(也可以没箭头),类A指向类B

3.序列图(用于描述方法之间的调用关系)从动态角度对系统进行描述

例子:GPS(全球定位系统) 客户端设备获取设备当前位置(Location) 的过程所涉及的方法调用。

序列图中,方框表示对象。方框中冒号(:)前的文本表示对象标志,冒号后的文本表示类名。带箭头的实线表示方法调用。

实线箭头指向的一方表示被调用的方法所属的类。带箭头的实线上方的文本表示被调用的方法(包括方法名,方法参数和返回值)。

带箭头的虚线表示相应的方法调用返回。

上面图对应的java 代码

public class LocationExample{

public static void main(String[] args){

LocationService ls = new LocationService();

Location location = ls.getCurrentLocation();

// 其他代码

}

}

class LocationService{

private final GPSClientDevice gpsClient = new GPSClientDevice();

public Location getCurrentLocation(){

Location aLocation;

aLcation gpsClient.retrieveLocation();

return aLocation;

}

}

class GPSClientDevice{

public Location retrieveLocation(){

Location aLocation = new Location();

// 其他代码

return aLocation;

}

}

class Location{

// 其他代码

}

java uml模型图 常见图形含义_uml图六种箭头的含义相关推荐

  1. Java内存模型和常见的内存溢出类型及解决方案

    Java内存模型与常见的内存溢出 一. Java 运行过程和内存分配 1 Java的平台无关性 2 Java内存模型 2.1Java内存模型图 3 内存结构详解 3.1 元空间(MetaSpace) ...

  2. 【实用工具】UML图六种箭头的含义

    文章参考资源,安利一波: W3Cschool UML教程 UML各种图总结-精华 uml图六种箭头的含义 UML类图中箭头和线条的含义和用法 各种关系的强弱顺序: 泛化 = 实现 > 组合 &g ...

  3. UML六种箭头代表含义

    UML六种箭头代表含义 1. 泛化 1.1. **概念:** 1.2. **表示方法:**用实线空心三角箭头表示. 2. 实现 2.1. **概念:** 2.2. **表示方法:**空心三角形箭头的虚 ...

  4. plotly.js 常见图形使用 常见图形操作 折线图 热力图 轮廓图 泡泡图 图点击事件

    这篇文章内容来自自己工作中用到的可视化操作,偏向于科学图表方面.网上资料多且杂,并且有的并不准确,不过如果时间充足,推荐看plotly.js的英文官网,也提供搜索功能,只是需要对图表很熟悉并且英文要好 ...

  5. 中国图形图象学报和计算机科学,中国图象图形学报(中国图象图形学报影响因子排名)...

    <中国图象图形学报>是被国内主要检索系统收录的核心中文期刊,是图像图形学及相关领域的权威性杂志.主要刊登图像图形科学及其密切相关领域的基础研究和应用研. 审稿费150,录用后支付版面费36 ...

  6. uml图六种箭头的含义

    在看一些技术博客的时候,经常会见到博客里画上很多uml图.因为经常会被这几种表达关系的箭头搞混,这里我就把常见的6种箭头表达的含义理一下. 泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述, ...

  7. Matplotlib常见图形绘制(折线图、散点图 、柱状图 、直方图 、饼图 、条形图)

    文章目录 一.折线图 二.散点图 三.柱状图 四.直方图 五.饼图 六.条形图 一.折线图 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图 特点:能够显示数据的变化趋势,反映事物的变化情况 ...

  8. uml图六种箭头的含义(泛化、实现、依赖、关联、聚合、组合)

    泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在java中用来表示继承的关系. 表示方法:用实线空心三角箭头表示. 实现 概念:实现是 ...

  9. Java内存模型与线程(思维导图)

  10. UML六种箭头的含义

    每次都是懒,然后查到别人的描述.我感觉在我的脑子里印象不深刻.还是要自己写一篇. 不同的箭头,代表着不同类之前的关系. 被箭头指的类都是父类,基类,类A使用类B的类A. 六种如下:(组聚泛实关依)-- ...

最新文章

  1. linux下c语言俄罗斯方块,C语言实现俄罗斯方块源代码
  2. 大规模分布式消息中间件考虑点
  3. 提高你30%的设计效率的PPT快捷键
  4. CSS三栏布局的四种方法
  5. php 不同权限登录界面,PHP中如何实现不同权限进入不同页面_后端开发
  6. mysql 命令 pdf_MySQL命令文档 PDF 下载
  7. 前端学习(1034):jquery插件-全屏滚动
  8. bash颜色、变量、数组、相关脚本示例
  9. sharepoint2010 浏览器无法打开word
  10. EXTRONICS推出IRFID500便携式UHF RFID读写器
  11. python搭建https代理服务器_使用NGINX作为HTTPS正向代理服务器
  12. 毕业设计之校园一卡通管理系统的设计与实现
  13. 电脑未安装任何音频设备解决办法
  14. RALL机制的线程锁
  15. 车联网各领域头部企业排行榜
  16. 朴素贝叶斯关于naivebayes包核函数等
  17. 优秀程序员眼中的整洁代码
  18. 3ds MAX画图基础:如何画效果图与鸟瞰图[转]
  19. 2018.10.8 转
  20. 外网如何访问本地tomcat web服务器

热门文章

  1. BCD码:8421码
  2. 不要以为过了技术面就安全了,HR面也会挂人的!!
  3. bzoj3207 花神的嘲讽计划Ⅰ
  4. word中插入上下左右箭头
  5. Python数据分析案例-多因素方差分析
  6. 祝贺父亲节快乐的python代码_父亲节快乐的祝福语贺词(最新)
  7. SyncToy 文件同步工具的定时同步方案(不使用第三方软件)
  8. 禁止Tencent Upd
  9. 设置IDEA的护眼插件
  10. 正态分布概率函数积分推导伽马函数性质