Divergent Change

徵兆與症狀

你發現當在做一個功能的修改時,同時得改到許多不相關的類別。例如:當你新增一個產品類別時,你得要同時修改諸如:查找顯示排序等方法。又或者是,當你增加一個資料庫時,得要修改這幾個類別,而當你新增跟資料庫無關的功能時,還是得修改這幾個類別。

出現原因

通常這是源自於程式結構安排不良。

處理方法

  • 如果這些同時需要修改的地方,是順序上的差異,可以用 Split Phase 來分隔。
  • 可以用 Extract Class 把相關行為拆到另一個類別去。