In a section called "How Mature Are These Refactorings?" Martin Fowler writes:
As you use the refactorings [in this book] bear in mind that they are a starting point. You will doubtless find gaps in them. I'm publishing them now because although they are not perfect, I do believe they are useful. I believe they will give you a starting point that will improve your ability to refactor efficiently. That is what they do for me. [F, 107]
The same can be said of the refactorings in this book. They too are a starting point. With today's evolving tools and variety of object-oriented languages, there are many ways to perform refactorings.
It's best to treat my refactorings as a recipe that you adapt to your environment. This may mean skipping some steps in the mechanics of a refactoring, or it may mean going about the refactoring in a different way. What matters in the end is not the steps you follow but whether or not you improve the design of your code. If this book gives you useful ideas for improving your code, I'll be happy.
This catalog does not describe all of the possible pattern-directed refactorings I could have included. After writing 27 refactorings, it seemed like it was time to ship a book. However, my hope is that other authors will help extend this catalog to document additional pattern-directed refactorings that will be useful to programmers.