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 閱讀(306) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 梨树县| 兖州市| 台南市| 安宁市| 唐河县| 玉龙| 赤水市| 都安| 常山县| 西充县| 连州市| 肇源县| 驻马店市| 灵石县| 阿巴嘎旗| 连城县| 吴桥县| 博乐市| 都江堰市| 龙山县| 澄城县| 十堰市| 抚松县| 贡嘎县| 台州市| 油尖旺区| 定边县| 龙游县| 扎兰屯市| 兴安县| 托克托县| 南充市| 青铜峡市| 乐陵市| 高雄市| 乌鲁木齐县| 蓬安县| 太白县| 丹棱县| 建始县| 三河市|