- 浏览: 2046332 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (795)
- java (263)
- 聚类搜索引擎 (9)
- 经验之谈 (67)
- DSP (3)
- C++ (140)
- Linux (37)
- SNMP (6)
- Python (6)
- 数据库 (61)
- 网络 (20)
- 算法 (15)
- 设计模式 (4)
- 笔试题 (38)
- 散文 (35)
- 数据结构 (9)
- 银行知识 (0)
- 榜样 (9)
- Lucene (15)
- Heritrix (6)
- MetaSeeker (0)
- netbeans (12)
- php (3)
- 英语 (8)
- DB2 (0)
- java基础 (5)
- mongodb & hadoop (4)
- Javascript (7)
- Spring (4)
- ibatis & myibatis (1)
- velocity (1)
- 微服务 (0)
- paddle (1)
- 第三方 (0)
- 知识沉淀 (1)
- 建模 (0)
最新评论
-
0372:
标示对java很陌生!
中文乱码解决的4种方式 -
梦留心痕:
Java中\是转意字符, 可是你的这句话我没看懂,只要把得到的 ...
java中如何忽略字符串中的转义字符--转载 -
yanjianpengit:
[b][/b]
java为什么非静态内部类里面不能有静态成员 -
springdata-jpa:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
eclipse 如何把java项目转成web项目 -
qq1130127172:
,非常好。
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
在建立对象模型时,很容易把依赖、关联和聚集关系混淆。当对象A和对象B之间存在依赖、关联或聚集关系时,对象A都有可能调用对象B的方法,这是三种关系之间的相同之处,除此之外,它们有着不同的特征。
1.依赖关系的特征
对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间主要体现为依赖关系,例如生产零件的机器和零件,机器负责构造零件对象。再例如充电电池和充电器,充电电池通过充电器来充电。再例如自行车Bicycle和打气筒Pump,自行车通过打气筒来充气。
Bicycle类和Pump类之间是依赖关系,在Bicycle类中无需定义Pump类型的变量。Bicycle类的定义如下:
public class Bicycle{
/** 给轮胎充气 */
public void expand(Pump pump){
pump.blow();
}
}
在现时生活中,通常不会为某一辆自行车配备专门的打气筒,而是在需要充气的时候,从附近某个修车棚里借个打气筒打气。在程序代码中,表现为Bicycle类的expand()方法有个Pump类型的参数。以下程序代码表示某辆自行车先后到两个修车棚里充气:
myBicycle.expand(pumpFromRepairShed1); //到第一个修车棚里充气
myBicycle.expand(pumpFromRepairShed2); //若干天后,到第二个修车棚里充气
2.关联关系的特征
对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。例如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司;再例如自行车和主人,每辆自行车属于特定的主人,每个主人有特定的自行车,而充电电池和充电器之间就不存在固定的对应关系,同样自行车和打气筒之间也不存在固定的对应关系。
Person类与Bicycle类之间存在关联关系,这意味着在Person类中需要定义一个Bicycle类型的成员变量。以下是Person类的定义:
public class Person{
private Bicycle bicycle; //主人的自行车
public Bicycle getBicycle(){
return bicycle;
}
public void setBicycle(Bicycle bicycle){
this.bicycle=bicycle;
}
/** 骑自行车去上班 */
public void goToWork(){
bicycle.run();
}
}
在现时生活中,当你骑自行车去上班时,只要从家里推出自己的自行车就能上路了,不象给自行车打气那样,在需要打气时,还要四处去找修车棚。因此,在Person类的goToWork()方法中,调用自身的bicycle对象的run()方法。假如goToWork()方法采用以下的定义方式:
/** 骑自行车去上班 */
public void goToWork(Bicycle bicycle){
bicycle.run();
}
那就好比去上班前,还要先四处去借一辆自行车,然后才能去上班。
3.聚集关系的特征
当系统A被加入到系统B中,成为系统B的组成部分时,系统B和系统A之间为聚集关系。例如自行车和它的响铃、龙头、轮胎、钢圈以及刹车装置就是聚集关系,因为响铃是自行车的组成部分。而人和自行车不是聚集关系,因为人不是由自行车组成的,如果一定要研究人的组成,那么他应该由头、躯干和四肢等组成。由此可见,可以根据语义来区分关联关系和聚集关系。
聚集关系和关联关系的区别还表现在以下方面:
(1) 对于具有关联关系的两个对象,多数情况下,两者有独立的生命周期。比如自行车和他的主人,当自行车不存在了,它的主人依然存在;反之亦然。但在个别情况下,一方会制约另一方的生命周期。比如客户和订单,当客户不存在,它的订单也就失去存在的意义。
(2) 对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如小王的自行车被偷了,那么自行车的所有组件也不存在了,除非小王事先碰巧把一些可拆卸的组件(比如车铃和坐垫)拆了下来。
不过,在用程序代码来表示关联关系和聚集关系时,两者比较相似。
以下例程1-6是Bicycle类的源程序。
例程1-6 Bicycle.java
public class Bicycle{
private Bell bell;
public Bell getBell(){
return bell;
}
public void setBell(Bell bell){
this.bell=bell;
}
/** 发出铃声 */
public void alert(){
bell.ring();
}
}
在Bicycle类中定义了Bell类型的成员变量,Bicycle类利用自身的bell成员变量来发出铃声,这和在Person类中定义了Bicycle类型的成员变量,Person类利用自身的bicycle成员变量去上班很相似。
发表评论
-
流式计算
2022-02-07 14:31 279private void postHandle(List& ... -
消息队列使用的四种场景介绍
2018-08-09 16:34 2472以下介绍消息队列在实际应用中常用的使用场 ... -
设计模式
2018-04-11 16:49 9801.桥梁模式,将抽象部分与实现部分隔离开,抽象部分持有实现 ... -
Spring boot web可以访问Service和Mapper层
2018-03-26 16:42 2861Spring boot的web层可以访问Service层,然 ... -
FreeMarker的基础语法使用 && 心得和技巧
2018-01-10 10:03 2053FreeMarker是一个模板引 ... -
webService----wss4j+cxf实现WS-Security(基于UsernameToken)
2017-10-23 18:58 1554分享一下wss4j+cxf基于UsernameToken的安 ... -
Spring MVC之LocaleResolver(解析用户区域)
2017-09-23 15:55 2517为了让web应用程序支持国际化,必须识别每个用户的首选区域, ... -
(转)java泛型
2016-11-12 20:29 1646http://www.cnblogs.com/lwbqqyu ... -
java中如何忽略字符串中的转义字符--转载
2016-06-28 16:42 9899原文地址:http://my ... -
(转)关于JAP FetchType.LAZY(hibernate实现)的理解 .
2016-04-27 15:22 5104JPA定义实体之间的关系有如下几种: @OneToOne ... -
(转)hibernate annotation注解方式来处理映射关系
2016-04-26 16:52 1836http://www.cnblogs.com/xiao ... -
代码片段,导出的文件头
2015-11-18 20:34 1600public static void setDownload ... -
(转)为什么要两次调用encodeURI来解决乱码问题
2015-08-03 20:19 2481地址:http://blog.csdn.net/howla ... -
杀死进程
2015-07-21 14:54 1285sudo lsof -i :9000 COMMAND P ... -
批处理batch,执行多个SQL语句
2015-07-15 19:21 10609批处理batch,执行多个SQL语句。 ... -
中文乱码解决的4种方式
2015-07-03 14:20 2627目前收集到4中方法,中文传参一documentPath为例: ... -
GET请求的中文乱码问题及处理意义
2015-07-03 13:47 6631首先看一段乱码的程序 ... -
java.ByteArrayInputStream与ByteArrayOutputStream再次理解
2015-03-16 17:59 3235第一次看到ByteArrayOutputStream的时 ... -
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
2014-07-28 17:42 2272概述 继 Spring 2.0 对 Spring MVC ... -
java中序列化的serialVersionUID解释
2014-07-25 09:26 1885serialVersionUID: 字面意思上是序列化的版本号 ...
相关推荐
标题中的“151套各种关系精美ppt图表免费下载(1).rar”指的是一个包含151个高质量PowerPoint图表的资源包,这些图表设计用于帮助用户在演示文稿中清晰地展示不同类型的逻辑关系。这个压缩包是第一部分,可能意味着...
在UML中,图形是表达系统设计的关键元素,尤其在类图中,各种关系的运用对于理解系统组件间的交互至关重要。本文将深入探讨UML类图中的五种主要关系:关联、依赖、聚合、组合以及实现。 关联(Association)是最...
UML类图各种关系详解 包括 继承 实现 聚合 等等 一张图道出类之间的各种关系 直观容易
幼儿园师各种关系管理技巧与教学方法
PPT素材-151套各种关系精美ppt图表免费下载 PPT素材-151套各种关系精美ppt图表免费下载
LCN分布式事务框架,兼容dubbo、springcloud、motan框架,支持各种关系型数据库
看了离散数学中的关系整理了一点关于n元集合中各种关系的计算,现写下这个方便大家学习交流理解。其中有自反,对称,反自反,非对称等关系数的结论和计算方法,可供参考,
关系代数语言的优点是它可以描述关系数据库中的复杂操作,且可以用于描述各种关系数据库管理系统中的一致性和完整性规则。然而,关系代数语言也有一些缺点,例如它的学习难度较高,且需要对关系数据库有深入的了解。...
关系代数表达式的优点是可以灵活地组合各种关系运算符,以满足不同类型的查询需求。 关系代数表达式的基本运算符有五种:并、交、差、自然连接和除法运算。下面将对每种运算符进行详细的介绍和分析: 一、并运算 ...
供做数据库选型时参考
2. **关系分析**:工具可能会提供一种方式来分类和标记各种关系,例如家庭成员、朋友、同事等,并评估这些关系的深度和质量。这可能包括情感亲近度、互动频率、共同兴趣等因素。 3. **网络可视化**:为了更直观地...
描述中提到的“各种关系图,可进行对比,便于查看”,意味着这个压缩包可能包含不同类型的HLM关系图,以便于比较和理解。例如,它可能展示了不同层次变量如何影响整体模型的结果,或者比较了不同模型配置下的关系...
从管理角度看,劳动关系是指在企业生产经营过程中形成的各种关系,包括所有者与全体职工、管理者与普通员工、管理者与工会以及工会与职工的关系。这些关系的和谐与否直接影响到企业的稳定和效率。 在社会角度来看,...
通过实例,可以清晰地知道类的各种关系。类的封装继承多态,三大特性贯穿编程始终,是面向对象的特征所在。
通过以上分析可以看出,《关系数据库学习攻略(第三期)》深入浅出地介绍了关系模型的基本概念、关系与笛卡尔积的关系、关系中的关键概念以及各种关系操作的具体含义,为学习者提供了全面而系统的指导。
关系代数可以用来实现各种关系操作。 关系演算:关系演算是指对关系进行的逻辑操作,包括存在量词、普遍量词、负ation 等。关系演算可以用来实现各种关系查询。 笛卡尔积:笛卡尔积是指两个或多个域的乘积,结果是...
总的来说,关系型数据库设计是数据管理的基础,理解和熟练运用各种关系类型以及规范化原则对于构建高效、稳定的数据库至关重要。通过适当的规划和设计,关系型数据库能够支持复杂的查询,满足各种业务需求,为决策...
UML类图关系讲解 ...UML类图关系讲解了类图中的各种关系,包括继承关系、实现关系、关联关系、聚合关系、合成关系和依赖关系等。这些关系都是UML类图的基本组成部分,用于描述类和对象之间的关系。
在IT行业中,尤其是在数据分析、演示文稿制作以及信息可视化...利用PPT中的图表工具,结合各种关系图模板,可以创造出具有专业感和吸引力的演示文稿,无论是商业分析、学术报告还是教育培训,都能发挥出强大的作用。