Vi har bytt namn till Adlibris Campus! Campusbokhandeln ❤️ Adlibris - Läs mer här
Refactoring to Patterns
- Inbunden, Engelska, 2004
- Författare: Joshua Kerievsky
- Betyg:
Ej i lager
Beskrivning
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 166
Replace 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.