重新組織資料(一)

2021-07-16 08:48:08 字數 557 閱讀 3540

1,self encapsulate field (自封裝自段)

現象:你直接訪問乙個字段,但與字段直接的耦合關係逐漸變得笨拙

要點:為這個字段建立取值/設定函式,並且只以這些函式來訪問字段。

2,replace data value with object (以物件取代資料值)

現象:你有乙個資料項,需要與其他資料和行為一起使用才有意義

要點:將資料項變成物件。

3,change value to reference (將值物件改為引用物件)

現象:你從乙個類衍生出許多彼此相等的例項,希望將它們替換為同乙個物件

要點:將這個值物件變成引用物件。

4,change reference to value (將引用物件改為值物件)

現象:你有乙個引用物件,很小且不可變,而且不易管理

要點:將它變成乙個值物件。

5,replace array with object (以物件取代陣列)

現象:你有乙個陣列,其中的元素各自代表不同的東西

要點:以物件替換陣列。對於陣列中的每個元素,以乙個欄位來表示。

重新組織資料(一)

你直接訪問乙個字段,但是與字段之間的耦合關係逐漸變得笨拙。為這個字段建立取值 設值函式,並且只以這些函式來訪問字段。間接地通過函式訪問變數的好處是 1.子類可以通過複寫函式來改變欄位的訪問路徑 2.可以提供靈活的資料管理,如延遲初始化,資料值讀取控制,資料值範圍設定控制等。當然直接訪問欄位的好處也是...

重新組織資料

將乙個值用於多個用途,就是催生混亂與bug的溫床 1.拆分變數 如果乙個變數有多個用途,就為每個用途宣告乙個變數。還有,如果要對引數改值,也先複製乙份,對副本改值,返回副本。2.字段改名 給字段取乙個準確的名字。好的命名及資料分布,能讓別人只看類的字段就理解這些類的行為。3.以查詢取代派生變數 盡量...

重新組織資料(二)

6,duplicate observed data 複製 被監視資料 現象 你有一些領域資料置身於gui控制項中,而領域函式需要訪問這些資料 要點 將該資料複製到乙個領域物件中。建立乙個observer模式,用以同步領域物件和gui物件內的重複資料。7,change unidirectional a...