原文: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. IE已经被抛弃,但是不能遗忘

    虽然IE的兼容问题,在我写这篇文章的时候基本已经被抛弃了,但是我觉得还是应该了解一下最基本的解决办法. 就像中国的历史已经过去,但是我们不能忘记一样的. 逐个版本解决法 .bb{ background ...

  2. yii2自动生成表单

    视图中: 1.要use的两个文件类 use yii\helpers\Html;   use yii\widgets\ActiveForm; 2.生成表单,以添加商品为例说明.注意红线区域:上传文件需要 ...

  3. 继承(引用~析构~virtual)

    [1]程序1 #include <iostream> using namespace std; class Base { private: int m_nBase; public: Bas ...

  4. 161101、在Java中如何高效判断数组中是否包含某个元素

    如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作.同时,这个问题在Stack Overflow中也是一个非常热门的问题.在投票比较高的几个答案中给出了几种 ...

  5. JSP中文乱码问题解决方法小结

    在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱 码问题以及解决方法. 1.JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要 ...

  6. sql回滚

    rollback是针对事务的,你如果没有在执行语句之前开启事务,那么无法rollback,建议你还是想别的办法吧,事务语句如下(sqlserver的给你借鉴):--开启事务begin tran --执 ...

  7. tr DEMO

    测试数据: [weblogic@etp-mall-dev7][/tmp]$ cat msn.txt aaa bbb bbb ccc ccc ddd bbb eee aaa ccc bbb sss 转换 ...

  8. HDU 3966:Aragorn's Story(树链剖分)

    http://acm.hdu.edu.cn/showproblem.php?pid=3966 题意:有n个点n-1条边,每个点有一个权值,有两种操作:询问一个点上权值是多少和修改u到v这条链上的权值. ...

  9. ACE的接受器(Acceptor)和连接器(Connector):连接建立模式

    ACE_Acceptor工厂的open()方法,或是它的缺省构造器(它实际上会调用open()方法),来开始被动侦听连接.当接受器工厂的open()方法被调用时,如果反应堆单体还没有被实例化,open ...

  10. java 面试每日一题7

    题目:判断101-200之间有多少个素数,并输出所有素数. 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数. public cla ...