ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          動機(Motivation)
          面向對象的首要原則之一就是封裝(encapsulation),或者稱為[數據隱藏](data hidding).

          public數據被看做是一種不好的作法,因為這樣會降低程序的模塊化程度(modularity).如果數據和使用該數據的行為被集中在一起,一旦情況發生變化,代碼的修改就會比較簡單,因為需要修改的代碼都集中于同一塊地方,而不是星羅棋布地散落在整個程序中.

          Encapsulate Field(206)是封裝過程的第一步.通過這項重構手法,你可以將數據隱藏起來,并提供相應的訪問函數(accessors).但它畢竟只是第一步.如果一個class除了訪問函數(accessors)外不能提供其他行為,它終究只是一個dumb class(啞類).這樣的class并不能獲得對象技術的優勢,而你知道,浪費如何一個對象都是很不好的.實施Encapsulate Field(206)之后,我會嘗試尋找那些使用[新建訪問函數]的函數,看看是否可以通過簡單的Move Method(142)輕快地將它們移到新對象去.
          posted on 2005-09-15 14:21 ivaneeo 閱讀(446) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 乌恰县| 郸城县| 侯马市| 蒲江县| 共和县| 上蔡县| 林口县| 沈丘县| 通江县| 呼图壁县| 罗源县| 汝州市| 长武县| 墨玉县| 台中市| 博客| 子长县| 蒙自县| 茂名市| 岑溪市| 招远市| 鄂托克前旗| 上饶县| 苏州市| 大城县| 犍为县| 蓬莱市| 松溪县| 陵水| 兴业县| 津南区| 三门峡市| 通化市| 大悟县| 灵武市| 汽车| 宁化县| 曲阜市| 华池县| 吉林市| 莆田市|