重新組織資料

2021-10-01 16:49:53 字數 561 閱讀 6060

將乙個值用於多個用途,就是催生混亂與bug的溫床

1. 拆分變數

如果乙個變數有多個用途,就為每個用途宣告乙個變數。

還有,如果要對引數改值,也先複製乙份,對副本改值,返回副本。

2. 字段改名

給字段取乙個準確的名字。好的命名及資料分布,能讓別人只看類的字段就理解這些類的行為。

3. 以查詢取代派生變數

盡量把可變資料的作用於限制在最小範圍,如果使用呼叫查詢函式替代變數,就能避免 修改源資料時忘了更新派生資料 的錯誤。而且也能更清楚得表達資料的含義。

4. 將引用物件改為值物件

多個物件想對乙個物件進行修改卻不影響其他物件對其的修改,就用值物件,要獲取值物件時,獲取的是該物件的副本。

5. 將值物件改為引用物件

乙個客觀實體,只有乙個代表它的物件。如果想在多個物件之間共享乙個物件,以便多個物件都能看見對共享物件的修改,那麼這個共享物件應該是引用。一般我們用的都是引用物件。

重新組織資料(一)

1,self encapsulate field 自封裝自段 現象 你直接訪問乙個字段,但與字段直接的耦合關係逐漸變得笨拙 要點 為這個字段建立取值 設定函式,並且只以這些函式來訪問字段。2,replace data value with object 以物件取代資料值 現象 你有乙個資料項,需要與...

重新組織資料(二)

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

重新組織資料(三)

11,encapsulate collection 封裝集合 現象 有個函式返回乙個集合 要點 讓這個函式返回該集合的乙個唯讀副本,並在這個類中提供新增 移除集合元素的函式。12,replace record with data class 以資料類取代記錄 現象 你需要面對傳統程式設計環境中的記錄...