--- robots: noindex, nofollow tags: refactoring --- # Feature Envy ![](https://i.imgur.com/SDObh1I.png) ## 徵兆與症狀 一個方法使用其他物件的資料,多於使用自己的資料。 ## 出現原因 常見的原因在於,當某些欄位被抽去到 data class 後,行為卻沒有被抽取過去。這些行為應該要被搬到 data class 內才是。 ## 處理方法 - 把持續呼叫外部資料的功能,用 `Move Function` 搬移出去;或者先用 `Extract Function` 抽取出特定部分功能,接著再用 `Move Function` 搬出去。