ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          動機(Motivation)
          在分布系統和并發系統中,不可變的value object特別有用,因為你不須考慮它們的同步問題。

          value object有一個非常重要的特性:它們應該是不可變的(immutable)。無論何時只要你調用同一個對象的同一個查詢函數,你都應該得到同樣結果。如果保證了這一點,就可以放心地以多個對象表示相同事物(same thing)。如果value object是可變的(mutable),你就必須確保你對某一對象的修改會自動更新其他[代表同事物]的其他對象。這太痛苦了,與其如此還不如把它變成reference object。

          這里有必要澄清一下[不可變(immutable)]的意思。如果你以Money class表示[錢]的概念,其中有[幣種]和[金額]兩條信息,那么Money對象通常是一個不可變的value object。這并非意味你的薪資不能改變,而是意味:如果要改變你的薪資,你需要使用另一個嶄新的Money對象來取代先有的Money對象,而不是在現有的Money對象上修改。你和Money對象之間的關系可以改變,但Money對象自身不能改變。
          posted on 2005-09-05 10:34 ivaneeo 閱讀(240) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 乃东县| 奈曼旗| 山阴县| 宣威市| 酒泉市| 遂溪县| 登封市| 石楼县| 革吉县| 胶州市| 平山县| 九寨沟县| 姜堰市| 荣成市| 福贡县| 苏州市| 龙江县| 商城县| 雅安市| 奉节县| 马山县| 汶川县| 深圳市| 黄山市| 铅山县| 尚志市| 裕民县| 隆安县| 五大连池市| 麻城市| 东至县| 托里县| 黄石市| 锦州市| 六盘水市| 曲阜市| 通州市| 谢通门县| 阜宁县| 西安市| 辽阳县|