Fishpond Gift Vouchers - Let them choose!

We won't be beaten by anyone. Guaranteed

Refactoring to Patterns


Product Description
Product Details

Table of Contents

Foreword by Ralph Johnson.Foreword by Martin Fowler.Preface.What Is This Book About?What Are the Goals of This Book?Who Should Read This Book?What Background Do You Need?How to Use This Book.The History of This Book.Standing on the Shoulders of Giants.Acknowledgments.1. Why I Wrote This Book.Over-Engineering.The Patterns Panacea.Under-Engineering.Test-Driven Development and Continuous Refactoring.Refactoring and Patterns.Evolutionary Design.2. Refactoring.What Is Refactoring?What Motivates Us to Refactor?Many Eyes.Human-Readable Code.Keeping It Clean.Small Steps.Design Debt.Evolving a New Architecture.Composite and Test-Driven Refactorings.The Benefits of Composite Refactorings.Refactoring Tools.3. Patterns.What Is a Pattern?Patterns Happy.There Are Many Ways to Implement a Pattern.Refactoring to, towards, and away from Patterns.Do Patterns Make Code More Complex?Pattern Knowledge.Up-Front Design with Patterns.4. Code Smells.Duplicated Code.Long Method.Conditional Complexity.Primitive Obsession.Indecent Exposure.Solution Sprawl.Alternative Classes with Different Interfaces.Lazy Class.Large Class.Switch Statements.Combinatorial Explosion.Oddball Solution.5. A Catalog of Refactorings to Patterns.Format of the Refactorings.Projects Referenced in This Catalog.A Starting Point.A Study Sequence.6. Creation.Replace Constructors with Creation Methods.Move Creation Knowledge to Factory.Encapsulate Classes with Factory.Introduce Polymorphic Creation with Factory Method.Encapsulate Composite with Builder.Inline Singleton.7. Simplification.Compose Method.Replace Conditional Logic with Strategy.Move Embellishment to Decorator.Replace State-Altering Conditionals with State 166Replace Implicit Tree with Composite.Replace Conditional Dispatcher with Command.8. Generalization.Form Template Method.Extract Composite.Replace One/Many Distinctions with Composite.Replace Hard-Coded Notifications with Observer.Unify Interfaces with Adapter.Extract Adapter.Replace Implicit Language with Interpreter.9. Protection.Replace Type Code with Class.Limit Instantiation with Singleton.10. Accumulation.Move Accumulation to Collecting Parameter.Move Accumulation to Visitor.11. Utilities.Chain Constructors.Unify Interfaces.Extract Parameter.Afterword by John Brant and Don Roberts.References.Index.

Promotional Information

The reality of software is that great software designs are not necessarily created, but it is more likely that they evolve. In this eagerly-anticipated new book, Joshua Kerievsky helps the experienced developer see design patterns in the context of refactorings, not just as reusable elements existing apart from the refactoring literature. This fresh perspective helps the reader to learn how to evolve a software design. Test-first programming and merciless refactoring are the key practices of evolutionary design, and the author imparts his unique knowledge on these topics. The result is a classic book containing a plethora of practical advice that will help software designers properly gauge the project at hand, and evolve a design that will give their organization a competitive advantage.

About the Author

Joshua Kerievsky is the founder of Industrial Logic (, a company specializing in Extreme Programming. Since 1988, Joshua has been a professional software developer, coach, and instructor for clients such as Bankers Trust, MTV, MBNA, Ansys, MDS Sciex, Nielsen Media Research, and Sun Microsystems. He speaks regularly at conferences, has written numerous articles, and contributed chapters to Extreme Programming Explored (Addison-Wesley, 2001) and Extreme Programming Perspectives (Addison-Wesley, 2002). Joshua lives with his wife and daughters in Berkeley, California.

Ask a Question About this Product More...
Write your question below:
How Fishpond Works
Fishpond works with suppliers all over the world to bring you a huge selection of products, really great prices, and delivery included on over 25 million products that we sell. We do our best every day to make Fishpond an awesome place for customers to shop and get what they want — all at the best prices online.
Webmasters, Bloggers & Website Owners
You can earn a 5% commission by selling Refactoring to Patterns on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep! You should start right now!
Authors / Publishers
Are you the Author or Publisher of a book? Or the manufacturer of one of the millions of products that we sell. You can improve sales and grow your revenue by submitting additional information on this title. The better the information we have about a product, the more we will sell!
Item ships from and is sold by Fishpond World Ltd.
Back to top