Java Design Pattern Essentials (book / ebook)
by Tony Bevis
Java Design Pattern Essentials (available as a paperback book or as a downloadable PDF ebook) will help take your knowledge of the fundamentals of the Java programming language and put it into practice in the real world by learning about Design Patterns.
Now you too can use the techniques developed by experts over the last couple of decades to solve your programming challenges, through easy to implement solutions to the most common problems that programmers face. Understanding design patterns is essential in being able to write clear, concise and effective code, even for complex applications.
Java Design Pattern Essentials gives you a step-by-step guide to the world of object-oriented software development, using tried and trusted techniques. The examples and code extracts have been deliberately kept simple, enabling you to concentrate on understanding the concepts and application of each pattern rather than having to wade through irrelevant source code. And the pattern examples have been designed around a common theme, making it easier for you to see how they relate to each other and more importantly how you can adapt them to your applications.
While the book assumes a basic knowledge of Java you certainly don't need to be a guru. This book is perfect for the programmer who wishes to take their skills up to the next level, so you can feel confident about using Java in real-world applications.
Coverage includes:
- All 23 of the design patterns described in the seminal work of Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides; Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley, 1995);
- Additional patterns for use in real-world applications;
- Full, simple explanation of the Model-View-Controller (MVC) pattern;
- Easy to follow UML diagrams;
- Advice on how to use the patterns in practice.
The author has over three decades of software development experience and is a Sun Certified Java Programmer.
|
Paperback edition
248 pages (ISBN: 978-0-9565758-0-7) Purchase your paperback copy now. Available in the USA, UK and worldwide. |
Downloadable eBook edition
248 pages (ISBN: 978-0-9565758-1-4) Purchase your eBook copy now. Available in the USA, UK and worldwide. |
Also available from Amazon
- Buy Java Design Pattern Essentials from Amazon USA
- Buy Java Design Pattern Essentials from Amazon UK
- Buy Java Design Pattern Essentials from Amazon Canada
- Buy Java Design Pattern Essentials from Amazon France
- Buy Java Design Pattern Essentials from Amazon Germany
- Buy Java Design Pattern Essentials from Amazon Japan
Table of contents
Introduction
- 1. What are Design Patterns?
Creational Patterns
- 2. Abstract Factory
- 3. Builder
- 4. Factory Method
- 5. Prototype
- 6. Singleton
Structural Patterns
- 7. Adapter
- 8. Bridge
- 9. Composite
- 10. Decorator
- 11. Facade
- 12. Flyweight
- 13. Proxy
Behavioural Patterns
- 14. Chain of Responsibility
- 15. Command
- 16. Interpreter
- 17. Iterator
- 18. Mediator
- 19. Memento
- 20. Observer
- 21. State
- 22. Strategy
- 23. Template Method
- 24. Visitor
Other Useful Patterns
- 25. Null Object
- 26. Simple Factory
- 27. Model View Controller
Appendixes
- A: UML Diagrams
- B: Quick Reference
- C: Bibliography
Purchasers of this book are welcome to download the source code from the book, which is available as a ZIP file. Please note that the downloaded source contains all of the corrections to the text as listed on the Errata tab.
To ensure you have purchased the book, please answer the question below:
What is the fourth word of the first paragraph on page 195...?
- On page 52 within the class VehicleManagerLazy remove the Engine e argument from each method signature and instantiate a StandardEngine(1300) to pass as the argument to the saloon, coupe, etc. inside each method, similar to how this was shown at the bottom of page 50. You should therefore also remove the passed argument for the engine in the code on page 53. As written in the book, the first instantiation of any vehicle will assign its engine size, and any subsequent call to a method such as createSaloon() will therefore return the previously created vehicle object with the original engine size. A more sophisticated solution coult utilise a Map keyed by engine size, so that vehicles of differing engine sizes could be lazily instantiated, but this is beyond the scope of the example.
- Page 65: The first sentence under Variations for implementing adapters: "do to" should be "to do".
- Pages 74 through 77: The class AbstractItem is subsequently referred to within code under the name Item although they are in fact the same class, and should therefore be consistent. For example, you should change the following:
- On page 74 Both the UML diagram and class code should refer to Item instead of AbstractItem;
- On the bottom of page 75 the class Part should extend Item;
- On page 76 the class Assembly should extend Item;
- On page 77 all code references to AbstractItem should be changed to Item.
- Page 96: The code for method getTurboEngine(): this.standardEnginePool.put(size, e); should be this.turboEnginePool.put(size, e);
If you think you have spotted a mistake in the book we would be grateful if you would let us know. The easiest way would be to use our enquiry form on our Contact Us page. Thank you.
Contact usJava training courses
Our Java courses cover the language from first principles through to advanced use in the real world.
PHP training courses
Our PHP courses are for web programmers with a range of abilities, including security essentials.
