- 浏览: 1133954 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (138)
- JAVA基础 (22)
- Spring (6)
- 设计模式 (2)
- JDK源码 (3)
- java-功能组件 (4)
- 游戏项目 (2)
- linux (13)
- Oracle (2)
- struts (1)
- 字符集 (8)
- HTTP协议 (2)
- java-网络通信 (1)
- 工具软件推荐 (2)
- tomcat (1)
- java-容器框架 (2)
- java-IO框架 (2)
- java-多线程框架 (4)
- java-NIO框架 (0)
- jquery (2)
- 工具使用 (12)
- 加密解密 (1)
- redis (2)
- maven (2)
- svn (1)
- eclipse (1)
- mysql (11)
- 我的收藏 (1)
- JAVA进阶 (26)
- 运维 (3)
- protocol buffer (1)
- 优秀博主 (1)
- nginx (1)
- 算法 (2)
- 故障排查 (4)
- 粤语歌曲 (6)
- 生活总结 (6)
- 高并发 (4)
- 语言训练 (1)
- 读书笔记 (5)
- 诗歌 (1)
- tomcat源码学习 (1)
- 软件词汇 (1)
- git (1)
最新评论
-
ryuhi:
一个是来源source,一个是来源方序列号seq这两个数据要怎 ...
高并发的核心技术-幂等的实现方案 -
xuezhongyu01:
无量 写道Master-Gao 写道理论感觉还行,可以代码我还 ...
高并发的核心技术-幂等的实现方案 -
无量:
Master-Gao 写道理论感觉还行,可以代码我还是不会写。 ...
高并发的核心技术-幂等的实现方案 -
phil_jing:
@RequestParam 默认 true
SpringMVC注解@RequestParam全面解析 -
aguai0:
aguai0 写道第五条里的如果要获取任务执行结果,用Comp ...
JAVA进阶----ThreadPoolExecutor机制
一、背景介绍
UML类图的关系,或者说面向对象语言中,静态类之间的关系有哪些,他们之间的区别在哪里,这是本文要解决的问题点。
二、类之间关系
有泛化、继承(非UML标准中)、实现、依赖、关联、聚合、组合七种关系,下面逐个介绍这些概念。
1. 泛化
泛化是对一些具体的个体的一般化,抽象化,是由具体的给他抽象出共性的过程。
UML类图:
2. 继承
继承是一个类(称为子类或子接口)继承另一个类(称为父类或父接口)里面的所有属性和方法,在增加自己特性的过程。
UML类图:
3. 实现
实现是一个类 class 去实现一个接口 interface
UML类图:
4. 依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用
UML类图:
5. 关联
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量
UML类图:
6. 聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分
UML类图:
7. 组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分
UML类图:
三、自己的理解
1. 继承和泛化的区别
其实就是一回事,讲的是子类和父类的关系。只是继承是从子类的角度来说,子类继承父类,先有父类。泛化是从父类的角度来说,先有各种各样的个体,抽象出共同部分,来泛化成父类。
2. 实现很简单,就是一个类实现一个接口,没什么可说的
3. 依赖、关联、聚合和组合的区别
就类之间的关系来讲:
依赖是把一个类作为另一个类中方法的参数或返回值。非常弱的关系,只有函数使用的时候才产生关系。
依赖中两个类在实际意义上是平等关系
关联、聚合和组合,其实都是一个类作为另一个类的成员变量。只是从实质的角度来讲,层次深浅的关系。
关联中两个类在实际意义上也是平等的关系
聚合,中两个类在实际意义上是整体和部分的关系,注意,部分可以独立存在。比如猴群和猴子。
聚合中两个类在实际意义上是整体和部分的关系,但是部分可以独立存在。
组合,中两个类的实际意义上也是整体和部分的关系,只是部分不可以独立存在,在类的生命周期里,可以先初始化部分后初始化整体,也可以先初始化整体后初始化部分,但是,在销毁的时候,一定是先销毁部分在销毁整体。比如人和头发的关系。
组合中两个类在实际意义上也是整体和部分的关系,不过部分不可以独立存在
其实,依赖、关联、聚合、组合都是关联。依赖是最弱的关联,其次是普通关联,接下来是聚合,组合是最强的关联:
关联强度: 组合 > 聚合 > 关联 > 依赖
推荐博文:写的也很好
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html
http://www.uml.org.cn/oobject/201104212.asp
欢迎大家关注我的公众号
UML类图的关系,或者说面向对象语言中,静态类之间的关系有哪些,他们之间的区别在哪里,这是本文要解决的问题点。
二、类之间关系
有泛化、继承(非UML标准中)、实现、依赖、关联、聚合、组合七种关系,下面逐个介绍这些概念。
1. 泛化
泛化是对一些具体的个体的一般化,抽象化,是由具体的给他抽象出共性的过程。
UML类图:
2. 继承
继承是一个类(称为子类或子接口)继承另一个类(称为父类或父接口)里面的所有属性和方法,在增加自己特性的过程。
UML类图:
3. 实现
实现是一个类 class 去实现一个接口 interface
UML类图:
4. 依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用
UML类图:
5. 关联
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量
UML类图:
6. 聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分
UML类图:
7. 组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分
UML类图:
三、自己的理解
1. 继承和泛化的区别
其实就是一回事,讲的是子类和父类的关系。只是继承是从子类的角度来说,子类继承父类,先有父类。泛化是从父类的角度来说,先有各种各样的个体,抽象出共同部分,来泛化成父类。
2. 实现很简单,就是一个类实现一个接口,没什么可说的
3. 依赖、关联、聚合和组合的区别
就类之间的关系来讲:
依赖是把一个类作为另一个类中方法的参数或返回值。非常弱的关系,只有函数使用的时候才产生关系。
依赖中两个类在实际意义上是平等关系
关联、聚合和组合,其实都是一个类作为另一个类的成员变量。只是从实质的角度来讲,层次深浅的关系。
关联中两个类在实际意义上也是平等的关系
聚合,中两个类在实际意义上是整体和部分的关系,注意,部分可以独立存在。比如猴群和猴子。
聚合中两个类在实际意义上是整体和部分的关系,但是部分可以独立存在。
组合,中两个类的实际意义上也是整体和部分的关系,只是部分不可以独立存在,在类的生命周期里,可以先初始化部分后初始化整体,也可以先初始化整体后初始化部分,但是,在销毁的时候,一定是先销毁部分在销毁整体。比如人和头发的关系。
组合中两个类在实际意义上也是整体和部分的关系,不过部分不可以独立存在
其实,依赖、关联、聚合、组合都是关联。依赖是最弱的关联,其次是普通关联,接下来是聚合,组合是最强的关联:
关联强度: 组合 > 聚合 > 关联 > 依赖
推荐博文:写的也很好
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html
http://www.uml.org.cn/oobject/201104212.asp
欢迎大家关注我的公众号
发表评论
-
temp
2019-05-19 23:40 6504. 终端执行命令ssh-keygen -t rs ... -
Java线程Dump分析工具--jstack
2017-04-18 11:27 2457Java线程Dump分析工具--jstack (转htt ... -
jdk-源码中的一些坑
2017-02-13 15:17 1170jdk-源码中的一些坑 1. Runnable接口的命名简直 ... -
内存溢出和内存泄露的区别
2016-11-15 20:12 4044内存泄漏(Memory Leak) 1. 概念: 指你用在C语 ... -
System.getProperty()获取tomcat自定义变量
2016-07-26 15:26 2131System.getProperty()获取tomcat自定义 ... -
Java类初始化顺序
2016-05-04 17:24 1836package com.tongbanjie.trade.te ... -
Rpc转
2016-03-27 22:48 978RPC框架几行代码就够了 博客分类: Java ... -
YY淘宝商品数据库设计(转)
2016-03-08 20:27 2704http://www.cnblogs.com/mmmj ... -
apache commons工具类简介
2015-07-27 14:02 5840一、Commons BeanUtils 说明:针对Bean的一 ... -
java获取客户端ip
2015-06-17 14:35 1621转:http://www.cnblogs.com/ITtan ... -
递归计算树结构当前节点包含多少级
2015-04-15 19:37 3849今天一个同事做,可变更目录结构时,遇到的计算当前节点包括节点下 ... -
JAVA基础----解决get方法传递URL参数中文乱码问题
2015-01-23 15:45 5701[转]解决get方法传递URL参数中文乱码问题 ... -
JAVA基础----JDK和JRE的区别
2014-10-17 09:47 2228JDK和JRE的区别(转) JRE -- java runti ... -
JAVA基础----ThreadLocal正确理解(转)
2014-09-02 11:15 1579http://www.iteye.com/topic/10 ... -
JAVA基础----网络通信之UDP通信
2014-04-15 20:09 4013java UDP通信的实现,代码如下 1、简单的通信 pack ... -
JAVA基础----Calendar类和GregorianCalendar
2014-03-11 19:01 9005Calendar日期处理类,用来处理日期的设值,获取相应的年, ... -
JAVA基础----DateFormat和SimpleDateFormat对象
2014-03-10 23:29 1547DateFormat和SimpleDateFormat类,是操 ... -
JAVA基础----static关键字全面理解
2014-03-09 10:38 1732static修饰的,在类加载的过程中就被初始化,并且在内存中只 ... -
JAVA基础----java中final和static关键字的理解
2014-03-01 16:35 15171、final最终的,由final修饰的变量,只能被初始化一次 ... -
JAVA基础----java死锁的一个例子
2014-02-19 23:39 1588java的一个死锁的例子 package com.out.te ...
相关推荐
UML类图与类的关系详解,UML类图与类的关系详解,UML类图与类的关系详解
大家知道,UML类图之间的关系确实难以理解,而诸多教材中的解释又各不相同;我是查阅了了很多教程后,总结出的相对具有共性的解释了; 实例介绍了类图之间的关系及面向对象的相关概念 同时,介绍了EA下类图各关系的...
UML类图各种关系详解 包括 继承 实现 聚合 等等 一张图道出类之间的各种关系 直观容易
uml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.pptuml统一建模.ppt
很详细的UML类图的解析,画UMl类图不再难!
详细介绍UML类图的用法,并提供使用实例
java设计模式 抽象工厂模式详解 一张图让你彻底明白抽象工厂模式
UML-类图详解.doc
常见设计模式的解析和实现(C++)共21种.zip
StartUML工具使用,主要是类图绘制
轻松学会c++面向对象的UML类图设计,里面有德州扑克的类图详解
利用UML类图设计Java应用程序详解.doc
这是我从网上面copy下来的,有关类图的文章,详细讲述了类图的知识。
对UML类图进行了详细说明。在类图中,根据建模的不同景象,类图标中不一定列出全部的内容。如在建立分析模型或设计模型时,甚至可以只列出类名,在图中着重表达的是类与类之间的联系;在建立实现模型时,则应当在类...
包含UML图中的用例图,类图,对象图,顺序图,通信图,协作图,活动图,状态机图,部署图画法及详解