ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          動機(Motivation)
          在許多系統中,你都可以對對象做一個有用的分類:reference object和value objects。前者就像[客戶]、[帳戶]這樣的東西,每個對象都代表真實世界中的一個實物,你可以直接以相等操作符(==,用來檢驗同一性, identity)檢查兩個對象是否相等。后者則是像[日期]、[錢]這樣的東西,它們完全由其所含的數據值來定義,你并不在意副本的存在;系統中或許存 在成百上千個內容為“1/1/2000”的[日期]對象。當然,你也需要知道兩個value objects是否相等,所以你需要覆寫equals()(以及hashCode())。


          要在reference object和value object之間做選擇有時并不容易。有時侯,你會從一個簡單的value object開始,在其中保存少量不可修改的數據。而后,你可能會希望給這個對象加入一些可修改數據,并確保對任何一個對象的修改都能影響到所有引用此一對象的地方。這時候你就需要將這個對象變成一個reference object。
          posted on 2005-09-01 10:37 ivaneeo 閱讀(179) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 营山县| 墨玉县| 谷城县| 沽源县| 屏东市| 商南县| 北安市| 正安县| 墨江| 额济纳旗| 平顺县| 栾川县| 米林县| 昌黎县| 吉安县| 奉化市| 泸定县| 梁平县| 石棉县| 台中市| 广灵县| 会理县| 井冈山市| 云和县| 香河县| 玛曲县| 惠来县| 昆山市| 柯坪县| 邹平县| 东光县| 栖霞市| 汉阴县| 南漳县| 思南县| 井陉县| 安泽县| 镶黄旗| 多伦县| 开原市| 抚远县|