- 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 在繼承樹裡的角色。
沒有留言:
張貼留言