| | | Copyright |
| | | Advance Praise for Refactoring to Patterns |
| | | The Addison-Wesley Signature Series |
| | | | The Addison-Wesley Signature Series Signers: Kent Beck and Martin Fowler |
| | | Foreword |
| | | Foreword |
| | | 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 |
| | | Chapter 1. Why I Wrote This Book |
| | | | Over-Engineering |
| | | | The Patterns Panacea |
| | | | Under-Engineering |
| | | | Test-Driven Development and Continuous Refactoring |
| | | | Refactoring and Patterns |
| | | | Evolutionary Design |
| | | Chapter 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 |
| | | Chapter 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 |
| | | Chapter 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 |
| | | Chapter 5. A Catalog of Refactorings to Patterns |
| | | | Format of the Refactorings |
| | | | Projects Referenced in This Catalog |
| | | | A Starting Point |
| | | | A Study Sequence |
| | | Chapter 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 |
| | | Chapter 7. Simplification |
| | | | Compose Method |
| | | | Replace Conditional Logic with Strategy |
| | | | Move Embellishment to Decorator |
| | | | Replace State-Altering Conditionals with State |
| | | | Replace Implicit Tree with Composite |
| | | | Replace Conditional Dispatcher with Command |
| | | Chapter 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 |
| | | Chapter 9. Protection |
| | | | Replace Type Code with Class |
| | | | Limit Instantiation with Singleton |
| | | | Introduce Null Object |
| | | Chapter 10. Accumulation |
| | | | Move Accumulation to Collecting Parameter |
| | | | Move Accumulation to Visitor |
| | | Chapter 11. Utilities |
| | | | Chain Constructors |
| | | | Unify Interfaces |
| | | | Extract Parameter |
| | | Afterword |
| | | References |
| | | Inside Front Cover |
| | | | List of Refactorings |
| | | | Refactoring Directions |
| | | Inside Back Cover |
| | | | Code Smells |
| | | | A Study Sequence |