【转载】UML类图知识整理
原文:UML类图知识整理
UML类图
UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料。
这里简单整理
类之间的关系
泛化关系(generalization)
- 泛化(generalize): 一条带空心箭头的线表示
- 实现(realize) : 一条带空心箭头的虚线表示
泛化在Java中表现为继承(extends) ,is-a
的关系
实现在Android中表现为implements
接口,或者extends
抽象类
依赖关系(dependency)
用一条带箭头的虚线表示;箭头的指向为调用关系
简单来说,类A用到了类B,就可以说A依赖于B
依赖关系是一种临时性的偶然性的关系,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化
代码中的表现:比如方法的入参,构造方法的参数
关联关系(association)
用一条直线表示
它描述不同类的对象之间的结构关系;体现的是两个类、或者类与接口之间语义级别的一种强依赖关系
代码中的表现:关联对象通常是以成员变量的形式实现的
聚合关系(aggregation)
一条带空心菱形箭头的直线表示
聚合关系是关联关系的特例,它用于表示实体对象之间的关系,表示整体由部分构成的语义;是has-a
的关系;
例如一个部门由多个员工组成;
与组合关系不同的是,整体和部分不是强依赖的,整体与部分之间是可分离的,即使整体不存在了,部分仍然存在;
例如, 部门撤销了,人员不会消失,他们依然存在
组合关系(composition)
用一条带实心菱形箭头直线表示
组合关系是一种强依赖的特殊聚合关系,是contains-a
的关系,比聚合更强,也称为强聚合,如果整体不存在了,则部分也不存在
注意点
- 聚合跟组合其实都属于关联
- 关系强度:组合>聚合>关联>依赖
类的方法与属性
类可以拥有多个方法和属性
属性的表达方式:可见性 名称:类型 [ = 缺省值 ]
方法的表达方式:可见性 名称(参数列表) [ : 返回类型]
可见性:
+
public-
private#
protected~
package
另外:UML图中的斜体表示抽象
示例
释义:ViewGroup
是一个View
,也是一个ViewParent
,依赖于MotionEvent
(在onTouch(MotionEvent)
等方法)
释义:
员工与工号相关联,员工聚合成部门,部门组成公司。
部门解散了员工依然存在(所以是聚合),而公司倒闭,部门也就不存在了(所以是组成)。
【转载】UML类图知识整理的更多相关文章
- [转载]UML类图总结
前言 类图和序列图是UML中最常用的两种Diagram.我将做详细的总结.在许多书中,或者网站中,在介绍一个系统的子系统的设计时,很多时候,都是给出简单的类图来简述构成子系统的类之间的关系.这足以说明 ...
- [转载]uml 类图依赖与关联的区别
原文链接:https://www.cnblogs.com/liuzhang/archive/2013/03/17/2964095.html 最近研究设计模式,看类图有点发虚!有些关系搞的不是很清楚.所 ...
- UML类图知识点整理
引用源:https://www.cnblogs.com/me115/p/4092632.html 从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abs ...
- UML类图画法整理
一 类图画法 1.类图的概念 显示出类.接口以及他们的静态结构和关系,用于描述系统的结构化设计. 2.类 类是对一组具有相同属性.操作.关系和语义对象的抽象,是面向对象的核心,包括名称.属性和方法.如 ...
- UML类图知识
- 转载:23种常用设计模式的UML类图
转载至:https://www.cnblogs.com/zytrue/p/8484806.html 23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源 ...
- 【转载】UML类图几种关系的总结
因为有的时候很久不弄UML图,老是忘记几个常见的连接线的意思,这篇完全说转载:UML类图几种关系的总结 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Real ...
- 【转载】UML类图中箭头和线条的含义和用法
文章转载自 http://blog.csdn.net/hewei0241/article/details/7674450 https://blog.csdn.net/iamherego/article ...
- UML 类图基础知识记录
UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 依赖(Dependency): 关联(Association): 聚合(Aggregation): 合成(Composition): 泛化 ...
随机推荐
- 手机端js模拟长按事件(代码仿照jQuery)
代码编写: $.fn.longPress = function(fn) { var timeout = undefined; var $this = this; for(var i = 0;i< ...
- 白盒测试的学习之路----(五)TestNG的参数分离
之前的测试用例直接嵌套在代码中,不便于维护和测试设计,应该单独把测试用例放在excel内,然后程序从中读取数据到相应的接口内即可.使用ava程序对Microsoft Office格式档案读和写的功能提 ...
- [置顶] 一个懦弱的IT人
对自己近来的学习和工作做一个总结,规划一下未来. 还是从大三暑假说起,稀里糊涂的被拉去参加电子设计大赛,熬过了一段痛苦的时间.原本我是学计算机的,对硬件不太熟悉.不过经过一段时间痛苦的断断续续的学习, ...
- 【python cookbook】【数据结构与算法】10.从序列中移除重复项且保持元素间顺序不变
问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1.如果序列中的值时可哈希(hashable)的,可以通过使用集合和生成器解决.
- win7 dos命令窗口内容显示不全解决办法--将命令执行结果输出到一个文件中
执行命令:命令 >>某某路径\文件全名
- eclipse 利用已有c++代码建工程,并编译执行
如果你想建一个带Makefile的c++ 工程 1. 新建一个C++空工程,工程类型是makefile project,选择Linux GCC: 2. 将源码连同makefile文件一同作为一个文件系 ...
- 【JQGRID DOCUMENTATION】.学习笔记.2.基本表格
JqGrid的实例是一个JavaScript对象,带有属性,事件和方法.属性可以是字符串,数字,数组,布尔值或任何其他对象. 1 调用的约定: $("#grid_id").jqGr ...
- PHP String 函数
[http://www.w3school.com.cn/php/php_ref_string.asp ] PHP String 简介 String 字符串函数允许您对字符串进行操作. 安装 Strin ...
- HDU 3487:Play with Chain(Splay)
http://acm.hdu.edu.cn/showproblem.php?pid=3487 题意:有两种操作:1.Flip l r ,把 l 到 r 这段区间 reverse.2.Cut a b c ...
- northwind数据库介绍
① Categories: 种类表相应字段:CategoryID :类型ID:CategoryName:类型名;Description:类型说明;Picture:产品样本 ② CustomerCust ...