概述

    在画图的过程中,发现自己还是有好多不懂的地方,对于四大关系理解的不是特别透彻,所以画图的过程中总是“剪不断,理还乱!”再一次整理四大关系,再回首必然丰收~~~

1、实现(Realization)

    表示类是接口所有特征和行为的实现。

    【表示】UML图中实现常常用一条带有空心三角箭头的虚线指向接口如下:

                                   

2、泛化(Generalization)

    是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。

    【表示】一个带三角的箭头的实线,箭头指向父类。

                                 

3、依赖(Dependency)

    是一种使用关系,即一个类的实现需要另以一个类的协助,所以尽量不使用类的双向依赖。表现为函数中的参数,是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另一个类。例如A依赖于B,则B体现为局部变量,方法的参数、静态方法的调用。

    形式:

       类B以参数的形式传入类A的方法中。

       类B以局部变量的形式存在于类A的方法中。

       类A调用类B的静态方法。

    【表示】在UML图中实现使用一条带有箭头的虚线表示。箭头指向被使用者,如下:

                               

4、关联:(Association)

    表现为变量,类与类之间的联接,它使一个类知道另一个类的属性和方法。普通关联关系使类处于同一层次上。

    关联分为:

        单向关联:只有一个类知道另一个类的公共属性和操作;

        双向关联:两个类都知道另一个类的公共属性和操作。

        大多数关联应该是单向的,单向的关联更容易建立和维护。

    【表示】图中关联用一条实线来联接两个类。

                              

4.1聚合:

    是关联关系的一种,较弱的关联关系。聚合关系是整体和个体的关系。使类处于不同的层次关系上。一个是整体一个是部分。同时,是一种弱的“拥有关系”。聚合关系中,整体和部分是独立存在的,各自有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;

    【表示】带空心菱形的实心线,菱形指向整体。

                                       

4.2组合:

    也是关联关系的一种,比聚合关系强的一种关联关系。整体和部分不可分开,整体的生命周期结束就代表着部分的生命周期结束。

    【表示】带实心的菱形的实心线,菱形指向整体。

                                       

总结

    各种关系的强弱:

    泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 



若安好,便是晴!

UML——再回首的更多相关文章

  1. 再回首UML之下篇

    接着我们上篇博客再回首UML之上篇说,在类图中有四种关系,关联.依赖.泛化.实现,接下来,我们来看看依赖,依赖--描述的是一种使用关系,她说明一个事物的规格说明的变化可能影响到他使用的另一个事物,反之 ...

  2. 再回首UML之上篇

    UML,统一建模语言,是一种用来对真实世界物体进行建模的标准标记,这个建模的过程是开发面向对象设计方法的第一步,UML不是一种方法学,不需要任何正式的工作产品. UML提供多种类型的模型描述图,当在某 ...

  3. 再回首,Java温故知新——开篇说明

    不知不觉在IT界从业2年了,两年时间足够一个人成长很多,当然也会改变很多事.在这两年时间里,随着对技术的深入了解,知识面的拓展以及工作难度的增大,渐渐的感觉自己技术方面根基不稳,多数问题也只是做到知其 ...

  4. JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

    JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...

  5. 再回首,Java温故知新(一):Java概述

    Java发展历程 Java的发展要追溯到1991年,Patrick Naughton(帕特里克·诺顿)和James Gosling(詹姆斯·高斯林)带领Sun公司的工程师打算为有线电视转换盒之类的消费 ...

  6. 再回首,Java温故知新(八):Java基础之字符串

    字符串是Java中使用频率最高的类,但是它却不属于基本类型,而是预定义了String类来表示.从String类的源码可以看到,String是基于char[]实现的,而且Java中的String是不可变 ...

  7. 再回首,Java温故知新(七):Java基础之运算符

    常规算数运算符 包括+.-.*./.%分别对应着加.减.乘.除.取余,算数运算符所处理的两个数字必须为同种类型,如果是不同类型且无法进行自动类型转换的话必须进行强制类型转换,不过强制类型转换可能会丢失 ...

  8. [二十六]JavaIO之再回首恍然(如梦? 大悟?)

    流分类回顾 本文是JavaIO告一段落的总结帖 希望对JavaIO做一个基础性的总结(不涉及NIO) 从实现的角度进行简单的介绍 下面的这两个表格,之前出现过 数据源形式 InputStream Ou ...

  9. MySQL数据库再回首

    前言: 数据库是程序员的数据源泉,加上近期 要开发DB可视化.性能分析的功能 重新回顾一下MySQL知识,以下是笔记: MySQL架构 MySQL基础理论 1.什么是关系型数据库? 关系型数据库,这个 ...

随机推荐

  1. 十 Django框架,Cookie

    注意:获取Cookie是在请求对象里处理,设置Cookie是在响应对象里处理 普通Cookieset_cookie()设置普通cookie 参数: key, 键 value='', 值 max_age ...

  2. MySQL 当记录不存在时insert,当记录存在时update

    MySQL当记录不存在时insert,当记录存在时更新:网上基本有三种解决方法 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句 ...

  3. Java微信开发_Exception_02_"errcode":40164,"errmsg":"invalid ip 61.172.68.219, not in whitelist hint

    ip查询网址: http://www.ip.cn/ 一.异常现象 今天开始做微信开发,在办公室时能正常获取access_token,晚上回家之后获取access_token时却报出下列错误信息: {& ...

  4. 计算机丨浏览器访问出现DNS_PROBE_POSSIBLE解决方法

    方法1.打开命令控制台输入: netsh winsock reset.提示重启,电脑重启后就ok了. 其他方法待续......

  5. 关于MFC消息的总结

    一.MFC的消息类型 MFC的消息类型大致可以分为三种: 1.命令消息.由菜单和工具栏或快捷键产生,以WM_COMMAND形式发出(以WM_COMMAND发出的还有很多控件,如Button等,但它们产 ...

  6. vc中播放mp3文件的方法小结

    一般播放MP3常见的有两种方法,一种是自己解码,另外一种用系统的库,比如MCI,当然如果可以用控件直接用个控件会更方便. 1.      使用mci #include <windows.h> ...

  7. Link-cut-tree 学习记录 & hdu4010

    网上的lct一抓一大把,所以我也不再写什么讲解了,只写一写自己的看法. Link-cut-tree 是用于维护动态树的一种数据结构 所谓动态树就是一片存在边的添加与删除的森林中的一棵树 所以我们要快速 ...

  8. 利用dynamic来提供动态方法的性能

    前段时间做了一个worklist的项目,有部分是利用xml配置DICOM的tag,然后根据xml把DICOM的Dataset转为实体类,或者把实体类转为Dataset. 当中主要应用了反射来调用Dat ...

  9. Java常见设计模式之观察者模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.模型-视图(Mo ...

  10. Spring boot 学习一:认识Spring boot

    什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...