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

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


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

  • 实现:这个可能有些初学者有些模糊,由于你们通常会认为实现跟继承是同样的概念,在java里面 继承使用的关键字是extends而实现使用的关键字是implements。说到这里我想你们都明白了吧。架构

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

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

  • 组合:组合,汉语词语,既能够做为名词又能够做为动词使用。做为名词,指由几个部分或个体结合成的总体;做为动词,是指组织成总体。orm

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


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

首先,从语义上理解:生命周期

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

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


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




本文出自 “陈砚羲” 博客,请务必保留此出处http://chenyanxi.blog.51cto.com/4599355/1531253

相关文章
相关标签/搜索