尊重原创:http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html
一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。
二、实现关系 实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性。在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。
三、依赖关系 简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。
[具体表现]
依赖关系表现在局部变量,方法的参数,以及对静态方法的调用
四、关联关系关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。在UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。
五、聚合关系 聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如计算机与CPU、公司与员工的关系等,比如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。
六、组合关系组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如人和人的大脑。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在UML类图设计中,组合关系以实心菱形加实线箭头表示。
七、总结对于继承、实现这两种关系没多少疑问,它们体现的是一种类和类、或者类与接口间的纵向关系。
(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命 周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件 也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。
举一个简单的例子:
一个图书馆可以有十万本书,也可以一本也没有。但空的图书馆还是图书馆。这是聚合
一个车(我们平常能看到的普通的交通工具车)有轮子,有的车是四轮子的,有的车是三轮的,自行车是二轮的,还有独轮车,但车至少要有一个轮子,不然就不是车。这是组合关系。
但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖。
分享到:
相关推荐
java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式
java设计模式 工厂方法模式uml类图,一张图就让你秒懂工厂方法模式
Java经典基础知识和UML类图介绍以及设计模式,里面放了几分java基础知识课件,几分UML类图课件,以及一份设计模式的课件。
java 设计模式的UML的类图,包括策略模式、代理模式、观察者模式、抽象工厂模式等。
java设计模式 抽象工厂模式详解 一张图让你彻底明白抽象工厂模式
UML建模图示例。介绍类之间的 关系:关联、聚合、合成、泛化、依赖等
java————23种设计模式-UML-类图及对应示例代码.doc
设计模式、UML结构、类图分析、设计模式案例
23种设计模式UML类图 参考于大话设计模式,其中加入了自己的理解,并实现中文化,方便阅读. 下载后可食用ProcessOn网站进行类图导入,可自行修改.
JAVA23种设计模式UML类图及对应示例代码[汇编].pdf
适配器模式的Java实现版本,包含类适配器模式和对象适配器模式的实现,同时也包含两者的UML类图
java 设计模式的类图 与源码分析 设计模式的类图 与源码分析 设计模式的类图 与源码分析
具体实现过程、UML类图以及实现效果详见如下项目说明地址: https://blog.csdn.net/vx1271487114/article/details/125468362?spm=1001.2014.3001.5502 该系统为绘图系统,该系统通过图用户界面实现一个简单的绘图...
包含以下文件: Java设计模式-图解-附代码.pdf 从Java类库看设计模式.doc 六大UML类图关系.docx 认识UML类图元素_java之UML.doc 设计模式6大原则.doc 设计模式学习笔记.doc 深入浅出设计模式(中文版).pdf
设计模式这命令模式的Java实现版本和UML设计类图
JAVA设计模式UML图,高清版免费 英文版 详细的介绍了几种常用的JAVA设计模式
)一个软件团队开发绘图系统,设计了圆对象(Circle)、矩形对象(Rectangle)、线对象(Line)都支持Draw()函数,即可以通过Draw()函数绘制图形。...应用桥接模式,用java应用程序实现该设计,绘制该模式的UML类图。
对象间的联动——观察者模式,处理对象的多种状态及其相互转换——状态模式,算法的封装与切换——策略模式,模板方法模式深度解析,操作复杂对象结构——访问者模式,设计模式与足球,多人联机射击游戏中的设计模式...
Java Web系统设计与架构内容简介:本书讲解JavaWeb系统设计与架构,包括Java与UML建模技术、Java设计模式、面向服务架构SOA、面向资源架构ROA、面向云架构COA,这5部分内容层层递进,涵盖了JavaEE开发中的各种设计与...