原文:UML类图知识整理

UML类图

UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料。

这里简单整理

类之间的关系

泛化关系(generalization)

  1. 泛化(generalize): 一条带空心箭头的线表示
  2. 实现(realize) : 一条带空心箭头的虚线表示

泛化在Java中表现为继承(extends) ,is-a的关系

实现在Android中表现为implements 接口,或者extends抽象类

依赖关系(dependency)

用一条带箭头的虚线表示;箭头的指向为调用关系

简单来说,类A用到了类B,就可以说A依赖于B

依赖关系是一种临时性的偶然性的关系,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化

代码中的表现:比如方法的入参,构造方法的参数

关联关系(association)

用一条直线表示

它描述不同类的对象之间的结构关系;体现的是两个类、或者类与接口之间语义级别的一种强依赖关系

代码中的表现:关联对象通常是以成员变量的形式实现的

聚合关系(aggregation)

一条带空心菱形箭头的直线表示

聚合关系是关联关系的特例,它用于表示实体对象之间的关系,表示整体由部分构成的语义;是has-a的关系;

例如一个部门由多个员工组成;

与组合关系不同的是,整体和部分不是强依赖的,整体与部分之间是可分离的,即使整体不存在了,部分仍然存在;

例如, 部门撤销了,人员不会消失,他们依然存在

组合关系(composition)

用一条带实心菱形箭头直线表示

组合关系是一种强依赖的特殊聚合关系,是contains-a的关系,比聚合更强,也称为强聚合,如果整体不存在了,则部分也不存在

注意点

  1. 聚合跟组合其实都属于关联
  2. 关系强度:组合>聚合>关联>依赖

类的方法与属性

类可以拥有多个方法和属性

属性的表达方式:可见性 名称:类型 [ = 缺省值 ]
方法的表达方式:可见性 名称(参数列表) [ : 返回类型]

可见性:

  • + public
  • - private
  • # protected
  • ~ package

另外:UML图中的斜体表示抽象

示例

释义:
ViewGroup是一个View,也是一个ViewParent,依赖于MotionEvent(在onTouch(MotionEvent)等方法)

释义:

员工与工号相关联,员工聚合成部门,部门组成公司。

部门解散了员工依然存在(所以是聚合),而公司倒闭,部门也就不存在了(所以是组成)。

【转载】UML类图知识整理的更多相关文章

  1. [转载]UML类图总结

    前言 类图和序列图是UML中最常用的两种Diagram.我将做详细的总结.在许多书中,或者网站中,在介绍一个系统的子系统的设计时,很多时候,都是给出简单的类图来简述构成子系统的类之间的关系.这足以说明 ...

  2. [转载]uml 类图依赖与关联的区别

    原文链接:https://www.cnblogs.com/liuzhang/archive/2013/03/17/2964095.html 最近研究设计模式,看类图有点发虚!有些关系搞的不是很清楚.所 ...

  3. UML类图知识点整理

    引用源:https://www.cnblogs.com/me115/p/4092632.html 从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abs ...

  4. UML类图画法整理

    一 类图画法 1.类图的概念 显示出类.接口以及他们的静态结构和关系,用于描述系统的结构化设计. 2.类 类是对一组具有相同属性.操作.关系和语义对象的抽象,是面向对象的核心,包括名称.属性和方法.如 ...

  5. UML类图知识

  6. 转载:23种常用设计模式的UML类图

    转载至:https://www.cnblogs.com/zytrue/p/8484806.html 23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源 ...

  7. 【转载】UML类图几种关系的总结

    因为有的时候很久不弄UML图,老是忘记几个常见的连接线的意思,这篇完全说转载:UML类图几种关系的总结 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Real ...

  8. 【转载】UML类图中箭头和线条的含义和用法

    文章转载自 http://blog.csdn.net/hewei0241/article/details/7674450 https://blog.csdn.net/iamherego/article ...

  9. UML 类图基础知识记录

    UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 依赖(Dependency): 关联(Association): 聚合(Aggregation): 合成(Composition): 泛化 ...

随机推荐

  1. 【GDI+】 线段 文字 定位的问题

    遇到一个看起来很简单的问题: 给定两个点,和一组文字,希望文字显示在线的附近并且居中显示.期望像这样的效果 进一步的抽象是: 1.根据文字的长度和高度,以及两个点,来获得文字的定位点(左上角点)的 2 ...

  2. xxxx

    http://www.cnblogs.com/zhuojun/p/5747999.html

  3. 160930、Javascript的垃圾回收机制与内存管理

    一.垃圾回收机制-GC Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存. 原理:垃圾收集器会定期(周期性 ...

  4. 使用SQLServer Profiler侦测死锁(转)

    准备工作: 为了侦测死锁,我们需要先模拟死锁.本例将使用两个不同的会话创建两个事务. 步骤: 1. 打开SQLServer Profiler 2. 选择[新建跟踪],连到实例. 3. 然后选择[空白] ...

  5. 安装cgdb

    wget -c http://cgdb.me/files/cgdb-0.6.8.tar.gz .tar.gz cd cgdb- yum -y install texinfo help2man read ...

  6. js实现通用的微信分享组件示例

    一.可定义的信息 1.分享时显示的LOGO:2.分享LOGO的宽度:3.分享LOGO的高度:4.分享出去显示的标题(默认调用网页标题):5.分享出去显示的描述(默认调用网页标题):6.分享链接(默认为 ...

  7. 不定参数的传递VA_LIST的用法

    VA_LIST的用法:(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针: (2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,使其指向第一个可 变参数的地址: ...

  8. char 型变量中能不能存贮一个中文汉字,为什么?

    char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个char类型占2个字节(16比特),所以放一个 ...

  9. List与Set的contains方法效率问题

    今天看到网上一篇文章说:Set检索元素效率低下,删除和插入效率高:List查找元素效率高,插入删除元素效率低.于是想到List虽然用get(index)方法查询效率高,但是若用contains方法查询 ...

  10. [算法][包围盒]球,AABB,OBB

    参考地址请看图片水印:http://www.cnblogs.com/iamzhanglei/archive/2012/06/07/2539751.html http://blog.sina.com.c ...