一句话UML,再记不住就要DPP了:

关系

图解

代码

备注

1:继承关系(Generalization)

2:实现关系(Realization)

3:依赖关系(Dependency)

方法的参数、局部变量、返回值

4:关联关系(Association)

互为类属性

5:方向关联(DirectedAssociation)

类属性

6:聚合关系(Aggregation)

类属性

has a

7:组合关系(Composition)

类属性

contains a

现在,稍作详细点,

一:继承关系(Generalization):

Class B继承与Class A

继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系之一;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;

二:实现关系(Realization):

Class A实现了Interface A

实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系之一;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;

三:依赖关系(Dependency):

ClassA依赖于ClassB

可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;表现在代码层面,为类B作为参数被类A在某个method方法中使用;

四:关联关系(Association):

ClassA与ClassB相互关联

这里的关联关系分的比较细,把相互关联和有方向的关联区分开了,相互他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,是一种长期的稳定的关系;表现在代码层面,为被关联类以类属性的形式出现在关联类中,也可能是关联类引用了一个类型为被关联类的全局变量;

五:有方向的关联(DirectedAssociation):

ClassA关联于ClassB

是关联的一种特别形式,是单向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

六:聚合关系(Aggregation):

计算机 has-a cpu

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

七:组合关系(Composition):

孕妇 contains-a 胎儿

组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;孕妇死了胎儿自然也就死了;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

linux java uml_简单实用UML关系图解相关推荐

  1. IDEA查看Java类的UML关系图

    1.说明 通过IDEA自带的Diagarm功能, 可以方便的查看Java类的UML关系图, 同时能有选择的查看变量.方法和构造器等, 以及对查看对象的访问权限进行过滤, 可以自由编辑生成的关系图, 任 ...

  2. Java注解的基本概念和原理及其简单实用

      一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析 ...

  3. mysql五日均线_五日均线战法图解,简单实用,一跟均线闯天下

    原标题:五日均线战法图解,简单实用,一跟均线闯天下 对于现在的股市来说,有一个简单又实用的指标,那就是均线指标.那均线指标是怎么定义的呢?均线就是在一定的交易时间内市场成本的平均值,由于均线是可以反映 ...

  4. jcrop java_[Java教程]Jcrop简单实用

    [Java教程]Jcrop简单实用 0 2014-05-06 12:00:10 今天有一个项目的功能需求 "在上传照片的时候能进行裁剪",网上找了下,发现有Jcrop这款插件,自己 ...

  5. linux简单实用,简单实用 Linux操作系统三则超酷技巧

    简单实用 Linux操作系统三则超酷技巧 2008-02-23 05:29:52来源:互联网 阅读 () Linux下修改MAC地址 MAC地址是网卡的物理地址,在Windows系统下,我们能够通过修 ...

  6. java 调用关系_【Java基础】几种简单的调用关系与方法

    直接上代码吧. class lesson4AB //同一个类下的public修饰的方法A,B可以相互调用 { public void A() { B();//等价于this.B(); } public ...

  7. java代码逆向工程生成uml

    今天在看一个模拟器的源码,一个包里有多个类,一个类里又有多个属性和方法,如果按顺序看下来,不仅不能对整个模拟器的框架形成一个大致的认识,而且只会越看越混乱,所以,想到有没有什么工具可以将这些个类以及它 ...

  8. java类图_java UML类图的使用-UML基础-火龙果软件工程

    类图 是用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据.学习好类图的绘制,是一位合格的软件工程师应有的技能 ...

  9. Linux java集成安装环境,Linux下Java环境安装

    本节主要讲解Linux(Centos 6.5)下Java环境的安装 1. 卸载机器上默认安装的JDK 在Linux环境下一般会默认安装jdk,为了自己项目的开发部署,一般情况要重新装jdk,而且自己装 ...

最新文章

  1. pandas使用apply函数和lambda函数、把所有行指定的数据列进行相加(use apply and lambda to add value in dataframe rows)
  2. android 日历按周获取,Android日历获取当前周,前几周和下周
  3. java 类加载过程
  4. 手动更改oracle监听,详解Oracle数据库手动注册监听的方法
  5. iOS之深入解析Runloop的底层原理
  6. python两个数组合并、找出中位数_leetcode刷题记录-找出这两个有序数组的中位数(python版本)...
  7. 如何在 Zabbix 执行远程主机的脚本或指令?如何用 Zabbix 监控网站的访问量?
  8. 每天一算法(一)——用链表实现加减乘运算
  9. 【渝粤教育】电大中专电商运营实操 (13)作业 题库
  10. 计分及竞赛软件启动时的错误现象及解决方法
  11. mysql 哨兵_第六课补充01——主从复制原理,哨兵机制
  12. DuiLib教程--认识她
  13. springboot 定时器使用方法之并行
  14. 微信小程序的注册流程
  15. 5G到底什么时候来,它究竟能给我们带来什么?
  16. 真是无语二手房可以这样逃税
  17. 【Android】 禁止首屏时钟AppWidget拖动到其他屏
  18. Android学习笔记六十:无线 WIFI 的13个信道频率范围
  19. html怎么设置一个div可以左右移动,利用css 使div上下左右移动
  20. 利用go制作微信机器人

热门文章

  1. 视差滚动(Parallax Scrolling)技术在网页中应用的精美案例
  2. 【刷题】BZOJ 4176 Lucas的数论
  3. freopen()函数在ACM中的使用
  4. idea创建git分支
  5. 转载:tensorflow保存训练后的模型
  6. java RSA 加签验签【转】
  7. 岁月悄然前行,没有停留的痕迹
  8. 家纺B2C优雅100获IDG及DCM 1000万美元投资
  9. 根据数据库中的值用js设置RadioButtonList选中与否
  10. 用计算机画有常数的函数图像,信息技术应用 用计算机画函数图象教学设计及教案分析...