内容简介:简单实用UML关系图解
一句话UML,再记不住就要DPP了:
| 关系 | 图解 | 代码 | 备注 |
| 1:继承关系(Generalization) | |
||
| 2:实现关系(Realization) | |
||
| 3:依赖关系(Dependency) | |
方法的参数、局部变量、返回值 | |
| 4:关联关系(Association) | |
互为类属性 | |
| 5:方向关联(DirectedAssociation) | |
类属性 | |
| 6:聚合关系(Aggregation) | |
类属性 | has a |
| 7:组合关系(Composition) | |
类属性 | contains a |
现在,稍作详细点,
一:继承关系(Generalization):
Class B继承与Class A
继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系之一;在 Java 中此类关系通过关键字extends明确标识,在设计时一般没有争议性;
二:实现关系(Realization):
Class A实现了Interface A
实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系之一;在 Java 中此类关系通过关键字implements明确标识,在设计时一般没有争议性;
三:依赖关系(Dependency):
ClassA依赖于ClassB
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;表现在代码层面,为类B作为参数被类A在某个method方法中使用;
四:关联关系(Association):
ClassA与ClassB相互关联
这里的关联关系分的比较细,把相互关联和有方向的关联区分开了,相互他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,是一种长期的稳定的关系;表现在代码层面,为被关联类以类属性的形式出现在关联类中,也可能是关联类引用了一个类型为被关联类的全局变量;
五:有方向的关联(DirectedAssociation):
ClassA关联于ClassB
是关联的一种特别形式,是单向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;
六:聚合关系(Aggregation):
计算机 has-a cpu
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
七:组合关系(Composition):
孕妇 contains-a 胎儿
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;孕妇死了胎儿自然也就死了;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
大部分来自: http://blog.csdn.net/duran1986/article/details/5573415
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learn Python the Hard Way
Zed A. Shaw / Addison-Wesley Professional / 2013-10-11 / USD 39.99
Master Python and become a programmer-even if you never thought you could! This breakthrough book and CD can help practically anyone get started in programming. It's called "The Hard Way," but it's re......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!