Hosted by:
Unit testing expertise at your fingertips!
Home | Discuss | Lists

Extract Implementer

The book has now been published and the content of this chapter has likely changed substanstially.

You want to separate the interface from the implementation but the existing implementation class is using the most appropriate name for the interface.

Turn the existing class into an interface by gutting it and putting the innards into a new implementation class.

Essentially Extract Interface[Fowler] refactoring turned inside out. Could also be viewed as a special case of Extract Class[Fowler] refactoring.

Further Reading

From [WEwLC]. "Working Effectively with Legacy Code" by Michael Feathers.

Page generated at Wed Feb 09 16:39:04 +1100 2011

Copyright © 2003-2008 Gerard Meszaros all rights reserved

All Categories
Introductory Narratives
Web Site Instructions
Code Refactorings
Database Patterns
DfT Patterns
External Patterns
Fixture Setup Patterns
Fixture Teardown Patterns
Front Matter
Result Verification Patterns
Test Double Patterns
Test Organization
Test Refactorings
Test Smells
Test Strategy
Value Patterns
XUnit Basics
xUnit Members
All "Code Refactorings"
Extract Class
Extract Implementer
Extract Interface
Extract Method
Extract Superclass
Inline Method
Inline Temp
Introduce Explaining Variable
Introduce Field
Introduce Local Extension
Introduce Parameter
Move Field
Move Method
Preserve Whole Object
Pull Up Field
Pull Up Method
Rename Method
Replace Conditional With Guard Clause
Replace Magic Number with Symbolic Constant
Replace Nested Conditional with Guard Clauses
Sprout Class