When we refactor, we're trying to respond to the forces affecting code. Sometimes what was a good change today no longer looks so good tomorrow, and we find ourselves reversing a refactoring.
Table I-3 presents a list of refactorings. Next to each refactoring, write the name of the refactoring that undoes its effects. (The refactoring and its inverse will both be on the list.)
See Appendix C for solution.
Change Bidirectional Association to Unidirectional
Change Reference to Value
Change Unidirectional Association to Bidirectional
Change Value to Reference
Introduce Explaining Variable
Pull Up Field
Pull Up Method
Push Down Field
Push Down Method
Remove Middle Man
Replace Delegation with Inheritance
Replace Inheritance with Delegation
Replace Parameter with Explicit Methods