- Used Books
- Staff Picks
- Gifts & Gift Cards
- Sell Books
- Stores & Events
- Let's Talk Books
Special Offers see all
More at Powell's
Recently Viewed clear list
Ships in 1 to 3 days
available for shipping or prepaid pickup only
Available for In-store Pickup
in 7 to 12 days
More copies of this ISBN
Other titles in the Addison-Wesley Signature series:
Refactoring to Patterns (Addison-Wesley Signature Series)by Joshua Kerievsky
Synopses & Reviews
In 1994, Design Patterns changed the landscape of object-oriented development by introducing classic solutions to recurring design problems. In 1999, Refactoring revolutionized design by introducing an effective process for improving code. With the highly anticipated Refactoring to Patterns , Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.
This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.
Refactoring to Patterns reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether youre focused on legacy or “greenfield” development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively.
Book News Annotation:
Kerievsky suggests that using patterns to improve an existing design is better than using patterns early in a new design, and enriches designs with patterns by applying sequences of low-level design transformations, known as refactorings. The 27 refactorings in his catalog address creation, simplification, generalization, protection, accumulation, and utilities. Each factoring describes the design transformation and when to use the method, and provides step-by- step instructions for an implementation along with a Java code example.
Annotation ©2004 Book News, Inc., Portland, OR (booknews.com)
About the Author
Joshua Kerievsky is the founder of Industrial Logic (http://industriallogic.com), 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.
Table of Contents
Foreword by Ralph Johnson.
Foreword by Martin Fowler.
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.
1. Why I Wrote This Book.
The Patterns Panacea.
Test-Driven Development and Continuous Refactoring.
Refactoring and Patterns.
What Is Refactoring?
What Motivates Us to Refactor?
Keeping It Clean.
Evolving a New Architecture.
Composite and Test-Driven Refactorings.
The Benefits of Composite Refactorings.
What Is a Pattern?
There Are Many Ways to Implement a Pattern.
Refactoring to, towards, and away from Patterns.
Do Patterns Make Code More Complex?
Up-Front Design with Patterns.
4. Code Smells.
Alternative Classes with Different Interfaces.
5. A Catalog of Refactorings to Patterns.
Format of the Refactorings.
Projects Referenced in This Catalog.
A Starting Point.
A Study Sequence.
Replace Constructors with Creation Methods.
Move Creation Knowledge to Factory.
Encapsulate Classes with Factory.
Introduce Polymorphic Creation with Factory Method.
Encapsulate Composite with Builder.
Replace Conditional Logic with Strategy.
Move Embellishment to Decorator.
Replace State-Altering Conditionals with State 166
Replace Implicit Tree with Composite.
Replace Conditional Dispatcher with Command.
Form Template Method.
Replace One/Many Distinctions with Composite.
Replace Hard-Coded Notifications with Observer.
Unify Interfaces with Adapter.
Replace Implicit Language with Interpreter.
Replace Type Code with Class.
Limit Instantiation with Singleton.
Move Accumulation to Collecting Parameter.
Move Accumulation to Visitor.
Afterword by John Brant and Don Roberts.
What Our Readers Are Saying
Other books you might like
Computers and Internet » Computers Reference » General