Design patterns are our link to the past and the future. They make up a foundational language that represents well understood solutions to common problems talented engineers before us have added to our collective knowledge base. Design patterns or blue prints exist in every engineering field in one way or the other. Software development is no different.
The art and science of design patterns was brought to the world of software engineering - and more specifically to enterprise Java - by the seminal Gang of Four (GoF) book. They have been with us ever since through our adventures in J2EE, Spring and now modern Java EE. This is for very good reasons. Server-side Java developers tend to write the type of mission critical applications that need to stand the test of time and hence benefit the most from the discipline that design patterns represent.
It really takes a special kind of person to write a book on design patterns let alone a book on how to utilize design patterns in Java EE applications. You require not only basic knowledge of APIs and the patterns themselves but deep insight that can only come with hard earned experience as well as an innate ability to explain complex concepts elegantly. I am glad Java EE now has Murat and Alex to accomplish the mighty feat.
This book fulfills a much needed gap and fills it well. It is also very good that the book is on the cutting edge and covers Java EE 7 and not just Java EE 6 or Java EE 5. In fact many of the design patterns covered like Singleton, Factory, Model-View-Controller (MVC), Decorator and Observer are now incorporated right into the Java EE platform. Others like Facade, Data Access Object (DAO) and Data Transfer Object (DTO) fit elegantly on top. Besides the classical design patterns some others worth adding to your repertoire are slightly newer formulations like Entities, Value Objects, Aggregates, Domain Services, Application Services and Repositories - these come from the world of Domain-Driven Design (DDD). Murat and Alex tackle each pattern, explain its pragmatic motivation and discuss how it fits into Java EE.
I hope you enjoy the book and it helps you write better, more satisfying enterprise Java applications.
This entry and contributions to the book were done entirely on my own personal time. All views voiced here are my own, not necessarily Oracle's.