1.用具名常量替代神秘數值:
如果使用了數字或字元表示形式,例如3.14,那麼請將這樣的字元使用具名常量來替代,例如pi
如果乙個變數的名字容易讓人產生誤解,就換個好點的名字
3.將表示式內聯化:
把乙個中間變數換成給它賦值的那個表示式本身
4.用函式來代替表示式:
用乙個函式來代替表示式,這樣一來表示式就不會在**中重複出現
5.引入中間變數
將表示式的值賦給中間的變數,要記住,給這個中間變數的命名應能準確概況表示式的用途
6.用多個單一用途變數代替某個多使用者變數:
如果乙個變數身兼數職,通常為i、j、temp,請用多個變數來讓他們各司其職。
7.在區域性用途中使用區域性變數而不是引數:
如果乙個被用作輸入的子程式引數在其內部又被用作區域性變數,那麼請直接建立乙個區域性變數來代替它
8.將基礎資料型別轉化為類:
如果乙個基礎資料型別需要額外的功能或額外的資料,那麼請把該資料轉換為乙個物件,然後再新增你
所需要的類的行為。類似於color、status、
9.將一組型別碼轉換為類或列舉型別:
例如訂單型別若分為普通訂單、積分訂單和活動訂單,請將該類的型別碼轉換為類或列舉型別
10.將一組型別碼轉換為乙個基類及其相應的派生類:
例如對order類,就可以建立nomalorder、activityorder、integerorder這樣的派生類
11.將陣列轉換為物件:
如果正在使用乙個陣列,且其中的不同元素具有不同的型別,那麼請用乙個物件替換該元素。
將陣列中各個元素轉化為該類的各個成員
12.把群集封裝起來
如果乙個類返回乙個群集,到處散步的多個群集例項將會帶來同步問題。請讓你的類返回乙個
唯讀群集,並且提供相應的子程式
13.用資料類來代替傳統記錄:
建立乙個包含記錄成員的類。這樣你就可以集中完成對記錄的錯誤檢查、持久化、和其它與
該記錄相關的操作
《重構》讀書筆記之資料重構
1.self encapsulate field 自封裝字段 為字段建立setter getter,並且只以這些函式來訪問字段 做法 為待封裝字段建立取值 設定函式 找出該字段的所有引用點,將他們全部改為呼叫取值 設值函式 將該字段宣告為private 複查,確保找出所有引用點 編譯測試 2.rep...
VTK vtkPolyData資料重構過程
對已有的浮點型資料,用vtk進行重構並建立拓撲結構。基本流程 m vtkpointssel vtksmartpointer new m vtkcellarraysel vtksmartpointer new m vtkpolylinesel vtksmartpointer new m vtkpoly...
重構 顯示資料 DataGridView的應用
1.基本的屬性 定位 currentcell 當前單元格 currentcell的響應的屬性 value值 columnindex 當前單元格的列 rowindex 當前單元格的行 指定單元格 datagridview i,j 行數datagridview.rowcount 對單元格的形狀進行編輯 ...