【php精品源码栏目提醒】:网学会员为广大网友收集整理了,【精品】面向对象-关联 - 中学课件,希望对大家有所帮助!
LOGO第四小组讲义组员:任万春 朱雪刚 关联 学习目标:了解关联的相关概念,熟悉关联的表 示法和实现技术,掌握运用简单的关联概念解决 复杂的关联问题,重点掌握如何建立关联。
主要内容 1:关联的相关概念 2:关联的表示方法和实现技术 3:运用简单的关联概念解决复杂关联问题 4:如何建立关联1:关联的相关概念 关联是对象实例之间的一种关系,它定义在类的抽 象层次上的定义,即关联是两个或者多个类上的一 个关系,其中的元素提供了被开发系统的应用领域 的一组有意义的信息。
最常见的情况是两个类之间的关联,即二元关联。
多个类之间的关联叫做n元关联。
二元关联是n元 关联的一种特殊情况。
1.1:关联与聚合 在概念上,他们都是对象实例间的一种静态关系,都是在 类的抽象层次上定义的,并且最终都可以通过对象的属性 来体现。
但它们差别是,聚合关系所涉及的两类对象在现 实世界里含有明显的has—a语义,能够区分哪个是整体, 哪个是部分,关联所涉及的对象之间没有这种语义,即分 不出整体和部分。
在模型表示方面,对这两种关系都是用一种连接符号来连 接相关的类,但是符号不同。
其多重性的表示完全一致, 都是“一对一”、“一对多”、“多对多”三种情况。
在实现上,关联和松散、灵活的聚合关系实现方法相同, 但它决不能使用紧密、固定的聚合关系所用的嵌套对象来 实现。
由于上述相似性和差别,在UML定义中把聚合作为关联的 一种特殊情况。
2.1:关联的表示法 二元关联的基本表示法,如下图 三元关联及n元关联的表示法,如下图2.1:关联的表示法 关联的多重性可以分为“一对一”、“一对多”、 “多对多”三种情况。
一对一的关联是指,关联两端的数量约书都是 1。
一对多的关联是指,关联两端的数量约束有一 个是1,另一个是 。
多对多的关联是指,关联两端的数量约束都是 。
2.2:二元关联的实现 一对一和一对多关联的实现 在编程语言中最常见的实现方法是:在程序中 用两个类分别实现关联两端的类;以数量约束 为1的类的对象实例为目标,在关联另一端的 类中设置一个指向该目标的指针或者对象标识。
在关系数据库的实现方法是:用两个数据库表 分别实现关联两端的类;以数量约束为1的类 所对应的表的元组为目标,在关联另一端的类 所对应的表中设置一个指向给目标的外键。
2.2:二元关联的实现 多对多关联的实现 在编程语言中最常见的实现方法是:在程序中 用两个类分别实现关联两端的类,同时用另一 个类来实现他们之间的关联。
实现关联的类含 有两个属性,分别是指向两端的类的对象实例 的指针或者对象标识。
在关系数据库的实现方法是:用两个数据库表 分别实现关联两端的类,同时用另一个数据库 表来实现他们之间的关联。
实现关联的数据库 表含有两个属性,他们分别是指向两端的表的 元组的外键。
2.2:二元关联的实现 多对多关联的实现 转换方法是:切断原先的两个类之间的多对多 关联,插入一个类代替他,并建立新增加的类 和原先的两个类之间的一对多关联。
3:运用简单的关联概念解决复杂的关联 简单的关联是指:在关联上不带有通过属性和操 作的方式来表达的附加信息。
复杂的关联有很多种,主要有带有属性和操作的 关联、三元关联和n元关联,、一个类在关联中 多次出现、关联端点的复杂情况。
3.1:带有属性和操作的关联 带有属性和操作的关联关联:在某些应用问题中, 不仅需要用关联来表示两个类之间存在着一个对 用户的业务有意义的关系,而且可能要求通过这 个关联给出更多的有用的信息。
为了解决这个问题,OMT方法对基本关联的概 念进行了扩充,提出了关联类的概念。
关联类既 是类也是关联。
它有着关联和类的特性。
它将多 个类连接起来同时又具有属性和操作。
3.1:带有属性和操作的关联 运用关联类的概念对上面的三个例子建模,其结 果如下:3.1:带有属性和操作的关联 运用对象的概念 来表示,在模型中增加相应的类 来描述这些新发现的对象,并重新考虑它和原先 两个类之间的关联。
3.1:带有属性和操作的关联 上述方法依据的原理是,对象不仅可用于表示有 形的事物也可用于表示无形的事物。
上述方法的描述:在应用中,当你认为一个关联 上还需要增加一些通过属性或者操作来描述的信 息时,那么就进一步运用面向对象的观点,分析 这些信息究竟描述了一种什么事物。
把这种事物 抽象为对象,用类表示,并分别建立新增加的类 和原先的类之间的简单的关联。
如果新定义的关 联仍然带有某些复杂的信息,则进一步的运用上 述方法,直到所有的关联都成为不带任何附加信 息的简单关联为止。
3.1:带有属性和操作的关联 上述方法可以作为一种通用的解决方法,把用关 联类的概念所表达的复杂关联转化为简单的关联。
3.2:三元关联和n元关联 从理论上说,在任意数量的类之间都可以定义一 个关联;在实践中,多个类之间的关联也会遇到。
但是,创造太多的表示符号将增加模型的复杂性, 这里要给出一种方法——将n元关联转化为二元 关联。
3.2:三元关联和n元关联 实现结果的一致性表明,完全可以在模型中采用 简单的面向对象技术——类和二元关联来表示n 元关联。
这样做的好处是:建模概念更为简单, 表示法不需要那么多花样,是模型与实现结果产 生更清晰的对应。
此外,运用简单的概念建模可 以避免目前UML提供的n元关联表示法的以下几 个潜在的缺陷。
类的数量问题 关联类的问题 多重性问题3.2:三元关联和n元关联 多重性问题3.3:一个类在关联中多次出现 在一个关联中同一个类多次出现。
在理论上,定 义多个集合之间的关系并不排除其中的某些集合 是相同的。
在实际运用中也会遇到这种情况。
上一篇:
Mysql参考手册 书籍教程收藏
下一篇:
不规则零件优化排样的神经网络混合优化算法