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-從地獄中重生
          主站蜘蛛池模板: 托克逊县| 永靖县| 常山县| 黎城县| 伊春市| 镇康县| 东港市| 东阿县| 治县。| 怀来县| 隆回县| 府谷县| 淳化县| 黔东| 芷江| 金阳县| 黑水县| 陆河县| 德清县| 龙江县| 普兰店市| 凤台县| 廊坊市| 南皮县| 宜宾市| 霞浦县| 吉木乃县| 大邑县| 淮南市| 小金县| 松江区| 遵义市| 普兰店市| 壤塘县| 河北省| 巩义市| 清远市| 渭源县| 黔东| 卢龙县| 澎湖县|