将单项关联改为双向关联(Change Unidirectional Association to Bidirectional)
两个类都需要对方特性,但其间只有一条单向连接;添加一个反向连接,并使修改函数能够同时更新两条连接
一、动机
需要一个反向指针,又不能绕道而行
二、做法
1、在被引用类中添加一个字段,用以保存反向指针
2、决定由哪个类--引用端还是被引用端--控制关联关系
3、在被控端建立一个辅助的函数,其命名应该清楚指出它的有限用途
4、如果既有的修改函数在控制端,让它负责更新反向指针
5、如果既有的修改函数在被控端,就在控制端建立一个控制函数,并让既有的修改函数调用这个新建的控制函数