Backward compatibility lets software evolve without breaking interfaces or behavior that existing consumers already rely on. During a refactor, preserve the old entry points while changing the implementation underneath. section 9.3.2
Think of compatibility like mail forwarding: old addresses continue working while calls are redirected to the new implementation. section 9.3.2
Preserve compatibility during a class extraction by:
- Moving the new responsibility into a separate class. section 9.3.2
- Keeping the original class interface available. section 9.3.2
- Forwarding old properties or calls to the new class. section 9.3.2
- Warning consumers before eventually removing the old interface. section 9.3.2
Extracting author details
After extracting an Author class from Book, retain book.author_for_display and book.author_for_citation as forwarding properties. New code can use book.author.for_display instead, allowing consumers to migrate gradually. section 9.3.2

















