1. Chapter 12 Big Refactorings ¶
 
1.1. Tease Apart Inheritance ¶
- You have an inheritance hierarchy that is doing two jobs at once.
 Create two hierarchies and use delegation to invoke one from the other.
 
 
 
1.2. Convert Procedural Design to Objects ¶
- You have code written in a procedural style.
 Turn the date records into objects, break up the behavior, and move the behavior to the objects.
 
 
 
1.3. Separate Domain from Presentation ¶
- You have GUI classes that contain domain logic.
 Separate the domain logic into separate domain classes.
 
 
 
1.4. Extract Hierarchy ¶
- You have a class that is doing too much work, at least in part through many conditional statements.
 Create a hierarchy of classes in which each subclass represents a special case.