What is `Move Method’ to Dr. Jones?
Move method body
Implement delegation
Convert uses of source members…
Source Impact
Move overriding/overridden methods
Move overloaded methods
Provide access to source members…
Design Suggestions
Source: Leave a delegate
Target: Copy method signature
Diagram Impact
No name conflict in target
Not a constructor
No source/target inheritance
Guards
Finally we can give some guidance to the programmer when he is ready to tackle the source, like moving the method body to the target, implementing the delegation in the source, and converting the uses of source members.
(Dr. Jones builds a cross reference of which methods use which other fields and methods for use in these last two steps.)
Dr. Jones decouples the choices of the refactoring steps to take, and the actual manipulation on the source to implement the refactorings.
In this way multiple alternatives can be more easily explored, and the hard work of implementing the refactorings undertaken once an alternative is chosen.