Refactoring Example:
Application: Drawing block diagrams (nodes and links).
Original data members in class AA represent node size and position as integer pixel values of its bounding box in Cartesian coordinates (x,y).
Ghost data members in the same class will represent the same node properties as float values representing polar coordinates (r,a) for the node’s center position and diagonal extent vectors: (r = vector length in pixel units; a = degrees counter-clockwise from the horizontal x-axis).
Two-way conversion between old and new variables is needed to support incremental conversion of client methods which coexist with others not yet converted, that still refer to the original data representation.