chang unidirectiona association to bidirectional

   读重构,写点东西,自己记着。

动机:  原来单方面引用,现在需要双方面引用。

做法: 1.在被引用段添加一个变量,保存引用端指针。

2.确定关联性。--------------》多低多引用,无所谓              如果谓一对多,则拥有单一引用的控制者。一般谓多的一方。

3然后在被控端添加辅助函数4.让修改函数更新反向指针。

如:

class Order{
  Customer c;
}
class Customer{
}
 开始order引用customer,忽然说,用户可以有多个订单,即用户也可以引用订单:首先添加一变量保存指针:
class Customer{
 Set orders
}
 这里呢,customer拥有多个引用,order拥有单个引用,所以order谓控制端,在被控端加辅助函数:
class Customer{
 Set orders;
 void firendOrders(){
  return oders;
 }
}

 现在要更新两边的引用:

 class Order{
 customer c;
set(Customer arg){ 
 if(c!=null) c.firendOrders().remove(this);
  c = arg;
 if(c!=null)c.firendOrders().add(this);
}
}
 
class Customer{
 Set Orders;
 void add(order o){oders.add(o)}
}
 写完了,第一次笔记,乱就乱点吧,慢慢成长。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值