ivaneeo's blog

自由的力量,自由的生活。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
动机(Motivation)
双向关联(bidirectional associations)很有用,但你也必须为它付出代价,那就是[维护双向链接,确保对象被正确创建和删除]而增加的复杂度.而且,由于很多程序员并不习惯使用双向关联,它往往成为错误之源.

大量的双向连接(two-way links)也很容易引发[僵尸对象]:某个对象本来已经该死亡了,却仍然保留在系统中,因为对它的各项引用还没有完全清除.

此外,双向关联也迫使两个classes之间有了相依性.对其中任一个class的任何修改,都可能引发另一个class的变化.如果这两个classes处在不同的package中,这种相依性就是packages之间的相依.过多的依存性(inter-dependencies)会造成就紧耦合(highly coupled)系统,使得任何一点小小改动都可能造成许多无法预知的后果.

只有在你需要双向关联的时候,才应该使用它.如果你发现双向关联不再有存在价值,就应该去掉其中不必要的一条关联.
posted on 2005-09-14 11:20 ivaneeo 阅读(277) 评论(0)  编辑  收藏 所属分类: refactoring-从地狱中重生

只有注册用户登录后才能发表评论。


网站导航: