2011-02-24

Refactoring 142 - Move Method

Bad smell:
  • Alternative classes with different interfaces
  • Data class
  • Featur envy
  • Inappropriate intimacy
  • Parallel inheritance hierarchies
  • Shotgun surgery
使用時機:
  •  一個 method 被其他 class 的使用次數多於該 method 所在的 class。
方法:
  • 在使用次數較多的 class 複製該 method,原 method 可以用 delegate 或直接移除。

Move method 是 Refactoring 的主要成員。

當 class 變胖或兩個 class 走太近時,就是使用 Move method 的好時機,可以讓 class 變得簡單易懂、責任清楚。

當一個 method 用別個 class 的 field 比用自家的多時,就可以考慮用 Move method 了,經常發生在用過 Move field 之後。

當想要用 Move method 時,先看看哪些地方呼叫這個 metho、這個 mthod 呼叫了誰、以及這個 method 在繼承樹裡的角色。

沒有留言:

張貼留言