重构——24将单项关联改为双向关联(Change Unidirectional Association to Bidirectional)

简介: 将单项关联改为双向关联(Change Unidirectional Association to Bidirectional):两个类都需要对方特性,但其间只有一条单向连接;添加一个反向连接,并使修改函数能够同时更新两条连接

将单项关联改为双向关联(Change Unidirectional Association to Bidirectional)

两个类都需要对方特性,但其间只有一条单向连接;添加一个反向连接,并使修改函数能够同时更新两条连接

一、动机

需要一个反向指针,又不能绕道而行

二、做法

1、在被引用类中添加一个字段,用以保存反向指针

2、决定由哪个类--引用端还是被引用端--控制关联关系

3、在被控端建立一个辅助的函数,其命名应该清楚指出它的有限用途

4、如果既有的修改函数在控制端,让它负责更新反向指针

5、如果既有的修改函数在被控端,就在控制端建立一个控制函数,并让既有的修改函数调用这个新建的控制函数

目录
相关文章
|
2月前
描述对象关联关系的 aggregation,composition 和 association 有何区别
描述对象关联关系的 aggregation,composition 和 association 有何区别
26 0
|
4月前
|
算法 Scala 数据库
MyBatisPlus-ASSIGN_ID、ASSIGN_UUID策略、雪花算法及简化配置
MyBatisPlus-ASSIGN_ID、ASSIGN_UUID策略、雪花算法及简化配置
203 0
|
7月前
ABAP 数据字典里数据元素(Data Element),结构(Structure)和表类型(Table Type)三者的使用辨析试读版
ABAP 数据字典里数据元素(Data Element),结构(Structure)和表类型(Table Type)三者的使用辨析试读版
66 1
|
数据可视化 uml
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
UML图讲解,关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系。
1942 0
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
|
9月前
|
存储 BI 数据库
access各对象之间的关系
access各对象之间的关系
在powerdesigner中,一个table,怎么在diagram中创建多个symbol(多个模块都和同一个表相关联)
在powerdesigner中,一个table,怎么在diagram中创建多个symbol(多个模块都和同一个表相关联)
99 0
在powerdesigner中,一个table,怎么在diagram中创建多个symbol(多个模块都和同一个表相关联)
|
存储 iOS开发 开发者
追根问底:Objective-C关联属性原理分析
Objective-C是一种动态性很强的语言,所谓动态能力,也可以理解为运行时能力。对于Objective-C开发者来说,动态性所带来的编程便利无处不在。例如通过Category类别来扩展已有类的功能。可以使已有类拥有新的方法和属性。
130 0
|
数据库
一对多关系domain Model中设置使用AutoMapper时出错
一对多关系domain Model中设置使用AutoMapper时出错
143 0
一对多关系domain Model中设置使用AutoMapper时出错
|
缓存 Java 数据库连接
Hibernate一对多关联的两个关键属性cascade和inverse(十一)
Hibernate一对多关联的两个关键属性cascade和inverse(十一)
Hibernate一对多关联的两个关键属性cascade和inverse(十一)
重构——25将双向关联改为单向关联(Change Bidirectional Association to Unidirectional)
将双向关联改为单向关联(Change Bidirectional Association to Unidirectional):两个类之间有双向关联,但其中一个类如今不再需要另一个类的特性;去掉不必要的关联
1732 0

热门文章

最新文章