Apress Pocket Guides....2
Creational Design Patterns in Java....3
Introduction....7
How Is the Book Organized?....9
Prerequisite Knowledge....9
Who This Book Is For....11
Guidelines for Using This Book....11
Useful Software....11
Conventions Used in This Book....12
Final Words....13
Acknowledgments....17
Table of Contents....18
About the Author....21
About the Technical Reviewer....23
1. The Factory Pattern....24
Direct Instantiations....24
Programming Without a Factory....24
Demonstration 1....26
Output....26
Analysis....27
Simple Factory Pattern....28
What Is a Factory?....28
Real-Life Example....28
Computer World Example....28
Demonstration 2....29
Output....31
Analysis....31
Q&A Session....31
Factory Method Pattern....33
Using Multiple Factories....33
Demonstration 3....35
Output....35
Q&A Session....36
Summary....39
2. Singleton Pattern....40
Concept....40
Real-Life Example....41
Computer World Example....41
The First Implementation....41
Using the Synchronized Method....42
Demonstration 1....44
Output....44
Analysis....44
Q&A Session....46
Alternative Implementations....53
Eager Initialization....53
Demonstration 2....53
Output....54
Analysis....55
Q&A Session....56
Bill Pughs Singleton....58
Demonstration 3....58
Output....59
Analysis....59
Enum-Based Singleton....59
Demonstration 4....60
Output....61
Analysis....61
Q&A Session....61
Summary....65
3. Builder Pattern....67
Concept....67
Real-Life Example....68
Computer World Example....69
The First Implementation....69
Explicit Director....69
Demonstration 1....76
Output....77
Q&A Session....78
Alternative Implementations....80
Fluent Builder....80
Demonstration 2....83
Output....84
Analysis....85
Q&A Session....85
Refactoring....88
Demonstration 3....91
Output....92
Analysis....92
Summary....93
4. Prototype Pattern....94
Concept....94
Real-Life Example....94
Computer World Example....94
The First Implementation....96
Key Considerations....96
Demonstration 1....101
Output....102
Analysis....103
Q&A Session....103
Alternative Implementation....108
A Factory-Based Variation....108
Demonstration 2....110
Output....111
Q&A Session....111
Summary....113
5. Dependency Injection Pattern....114
Concept....114
A Sample Program....114
Demonstration 1....116
Output....116
Introducing Dependency Injection....117
Real-Life Example....117
Computer World Example....117
Types of DI....118
Constructor Injection....119
Demonstration 2....119
Output....120
Q&A Session....121
Enhancing the Program....121
Demonstration 3....124
Output....125
Q&A Session....125
Setter Injection....126
Demonstration 4....127
Output....127
Analysis....127
Q&A Session....128
Method Injection....129
Demonstration 5....129
Output....130
Q&A Session....130
Interface Injection....131
Demonstration 6....134
Output....135
Q&A Session....136
Summary....141
Appendix A: Exploring Pattern Enhancements....143
Revisiting Factory Pattern....143
Parameterized Factory....143
Demonstration 1....143
Output....146
Analysis....147
Registry-Based Factory....147
Demonstration 2....147
Output....150
Analysis....150
Simplified Implementation....150
Demonstration 3....150
Final Thoughts....152
Revisiting the Builder Pattern....152
Exercise....152
Key....153
Revisiting the Prototype Pattern....153
Using an External Library (Apache Commons Lang)....154
Demonstration 4....154
Output....158
Appendix B: Whats Next?....161
Books....161
Other Resources....162
Final Note....162
Appendix C: Other Books by the Author....163
Discover a focused and practical introduction to creational design patterns in Java. This book is designed to help busy Java developers quickly understand the importance of high-quality software design, showing how creational patterns contribute to building flexible, maintainable, and scalable applications.
You will explore five key patterns: Simple Factory, Factory Method, Singleton, Builder, and Prototype—along with an insightful discussion on Dependency Injection. Each pattern is explained with real-world scenarios, practical examples, and complete Java implementations using the latest language version. It also includes Q&A sessions throughout the book to help reinforce understanding and prepare you for technical interviews.
This pocket guide is concise and beginner-friendly. It offers a modern approach for busy Java developers seeking to master creational design patterns without feeling overwhelmed.
Java developers with OOP experience who are new to design patterns and want to strengthen their software design skills.