جزییات کتاب
Aimed at the intermediate or advanced Java developer, Design Patterns Java Workbook provides an in-depth and challenging look at 23 "classic" software patterns illustrated with Java examples.This title fills a valuable niche by reprising the well-known guide to patterns, Addison-Wesley's Design Patterns: Elements of Reusable Software Design. While that earlier book relied on C++ and Smalltalk for its examples, this new volume uses Java code for the discussion of the same 23 design techniques. Many of the explanations draw on the author's custom classes for a hypothetical fireworks company, supplemented by material using "core" classes in standard Java. This text shows how to both recognize patterns in existing code and to incorporate them into new designs.Early sections look at interfaces, including a standout section on trees and the Composite pattern. For the chapter on responsibility patterns, veteran Java programmers will appreciate the use of JDBC used to explain the Bridge pattern and tips for spotting other patterns in everyday Java. Builder patterns come next, with a full tour of ways to construct objects more flexibly. When it comes to operations patterns, a notable section on the Interpreter pattern presents some challenging material on language parsers.Final chapters on extension patterns show how Java classes can extend one another using inheritance and other design principles. The discussion here of Java stream classes as examples of decorator patterns can help explain these rich (and sometimes confusing) sets of objects. Another useful section on Iterators shows how to create "type-safe" collections (normally not available in Java). Throughout this text, the author challenges the reader with dozens of easy-to-difficult questions (including actual design exercises). Complete answers are provided at the end of the book.As a hands-on workbook that will invite you to think about patterns in Java in new ways, this text is an invaluable companion to earlier titles on patterns. Its mix of design smarts and clever examples help make it ideal for the more advanced programmer. Less experienced readers can also benefit from its intelligent presentation of some of the best available thinking in software design today, now tailored to a Java audience.