这几天在看netty的源码想根据源码把netty的UML架构图跟时序图画出来,所以就复习了一下大学时代的一些UML基础知识,首先,我们要搞清楚以下几个概念:

  • 继承:这个就不要多说了,写过java代码的人一般都很容易理解继承这个概念。

  • 实现:这个可能有些初学者有些模糊,因为大家一般会认为实现跟继承是一样的概念,在java里面 继承使用的关键字是extends而实现使用的关键字是implements。说到这里我想大家都明白了吧。

  • 依赖:在理解这个概念之前我们先去百度百科里面看一下依赖的中文解释:依靠别人或事物而不能自立或自给。俗称成瘾。

  • 关联:我们一样去百度百科里面找一下关联的概念:把两个或两个以上在意义上有密切联系的句子组合在一起,叫复句,也叫关联句。

  • 组合:组合,汉语词语,既可以作为名词又可以作为动词使用。作为名词,指由几个部分或个体结合成的整体;作为动词,是指组织成整体。

  • 聚合:聚合,指分散的聚集到一起。在化学中它指有机化学和高分子化学的重要术语。在网络用语中指对互联网各种信息的集合。


以上关于继承跟实现可能大家理解起来比较简单一点,那么我们如何理解依赖,关联,组合,聚合的关系呢?

首先,从语义上理解:

  • 依赖需要的功能自己不能实现需要从外部引进相关类来完成相关功能,具体实现方式在:方法局部变量, 方法中的参数, 和对静态方法的调用。另外,依赖关系总是单向的。

关联关注的是密切联系,而依赖没有这个特点,因此关联一般是长期的且双方关系是平等的,具体的实现方式表现在:类全局变量的形式出现,并且关联可以是双向的。组合,从字面上理解是关联关系的一种,不过他更强调的是组合后的整体,即几个组件组合之后跟整体是不可分割的,如何创建,生命周期等都有整体来控制不受外界的干扰:具体表现在:类全局变量的形式出现,但是这个全局变量的创建不由外部决定。聚合指的是原本分散的东西聚集到一起,就是说东西原本就是存在的,只是通过一个组件把各个组件聚集到一起,而新的组件不负责其他组件的创建生命周期等的管理。另外,聚合也是关联的一种,从字面上理解关联更强调的是把密切联系,而聚合可能不太注重那一点:聚合具体表现在:方法中的参数。


因此总的来说关联,依赖,组合,聚合,这几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖。




转载于:https://blog.51cto.com/chenyanxi/1531253

UML依赖,关联,组合,聚合,继承,实现的关系相关推荐

  1. UML中关联,聚合,组合的区别及C++实现

    类间关系 在类图中,除了需要描述单独的类的名称.属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义.在UML类图中,关系用类框之间的连 ...

  2. 小解UML中关联、聚合、依赖(简易区分)

    说明:本帖目的是使读者快速简易理解三者关系,并非详解概念,所以有难免疏漏之处(部分内容来源网络). 一.相关概念 1.关联:关联关系(Association):类之间的联系,如客户和订单,每个订单对应 ...

  3. UML类图是描述类之间的关系

    UML类图是描述类之间的关系 概念 类(Class):使用三层矩形框表示. 第一层显示类的名称,如果是抽象类,则就用斜体显示. 第二层是字段和属性. 第三层是类的方法. 注意前面的符号,'+'表示pu ...

  4. 软件设计原则SOLID+组合聚合+迪米特原则(附代码讲解)

    SOLID是五大设计原则的首字母简写,最早出现于出自Robert Martin(罗伯特. 马丁)的<架构整洁之道>第三章设计原则.他们分别是 single Responsibility P ...

  5. [zz] 几种类间关系:继承、实现、依赖、关联、聚合、组合及UML实现图

    继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间 最常见的关系:在Java中此类关系通过关键字exten ...

  6. UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别

    zz from: http://dev.firnow.com/course/3_program/java/javajs/20090219/155939.html UML中几种类间关系:继承.实现.依赖 ...

  7. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  8. 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的 ...

  9. 【转】 UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合

    目录(?)[-] 继承 实现 依赖 关联 聚合 组合 类图及类图中的关系 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类( ...

  10. UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别 - 老唐 的专栏 -... (转载)

    这是一堂关于UML基础知识的补习课:现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了:本篇主要就以前自己一直感觉很迷糊的几种class之间的 ...

最新文章

  1. boost::mpl模块实现unpack_args相关的测试程序
  2. C# 对象名无效 问题
  3. C语言中的深拷贝和浅拷贝
  4. 18医科大学计算机基础,18春中国医科大学《计算机基础与应用 》在线作业100分答案...
  5. android 1到100000 正则,day13 Java学习(常见对象正则表达式)
  6. 机器学习2/100天-简单线性回归
  7. [.NET] : 设定Windows Service启动类型
  8. 一篇全面的 MySQL 高性能优化实战总结!
  9. u9系统的使用方法仓库_用友U9--INV库存管理手册.pdf
  10. 基于毕设的微信小程序校园二手商城实现(一)
  11. Adaptive Personalized Federated Learning 论文解读+代码解析
  12. iic的SDA引脚偶尔有毛刺(尖峰)是怎么回事。
  13. 数据包从物理网卡流经 Open vSwitch 进入 OpenStack 云主机的流程
  14. 关于Form表单的提交与验证???
  15. php连接数据库的留言板,PHP+MySql实现简单的留言板功能
  16. 博弈论--从 必胜点与必败点 到 SG 函数
  17. png 微软ppt 透明度,教你一招永久搞定PPT导出高清图片的小技巧
  18. linux git忘记密码,Linux下 保存 git账号密码
  19. Robomaster上位机视觉摘要——比赛规则篇
  20. 最新的阿里内部Java性能调优实战笔记,学完就能用的性能调优方法

热门文章

  1. Gym 100703F Game of words 动态规划
  2. estore商城案例(一)------用户注册邮件激活(上)
  3. 【JOURNAL】《题虾壶》
  4. 处理了与日期相关的一些函数
  5. 五、String字符串常用方法
  6. 本两个Build工作总结
  7. Google Kickstart Round.B C. Diverse Subarray
  8. web form常用控件
  9. 判断日期是否是合法的:
  10. DDD开发框架ABP之导航菜单