Last week I taugh a 4-day Sun training course: Architecting and Designing J2EE Applications. This course introduces a development methodology called SunTone, which is basically a variation of the Rational Unified Process centered around J2EE and with a higher emphasis on pattern use. At the end of the course, I gave my students a list of hopefully useful links:
The two founding tomes of pattern literature are:
- Design Patterns, aka the GoF or Gang-or-four book, published in 1995 and centered on design patterns. The style is terse, and the examples are given in Smalltalk and C++. Not the most accessible of books;
- Pattern-Oriented Software Architecture, Volume 1: A System of Patterns, aka the PoSA book, published in 1996. This book offers a classification of patterns into architecture patterns, design patterns and implementation patterns.
Vico.org has a page called Padrones de Diseño (title in Spanish, URL in Catalan, content in English) that presents detailed explanations for several patterns from both books, including simple UML diagrams of the patterns and some sample code. They also have a list of useful pattern links.
Patterns of Enterprise Application Architecture, published in 2002, is another accessible Martin Fowler book and a good introduction to several architecture patterns and concepts that can now be considered mainstream. As he says in the intro, this is not a book of new ideas. However, those new to system architecture will find this a pleasant and digestible read. Check out Catalog of Patterns of Enterprise Application Architecture for a list of the patterns discussed in this book, and be sure to check his Articles if you haven't yet.
The book Design Patterns Explained: A New Perspective on Object-Oriented Design introduces a few select patterns. I've lent this one to several CompSci people who all enjoyed it, and it was the first book that made me feel comfortable with the fundamental design patterns.
Another introductory book that's been topping the charts of Amazon.com's Java category is Head First Design Patterns. Unorthodox, irreverent, funny and effective.
Even more unorthodox is A Little Java, A Few Patterns. Written by Matthias Felleisen (co-author of How to Design Programs) and Daniel P. Friedman (co-author of Essentials of Programming Languages), this highly unusual book uses a socratic style of question-answer pairs to really engage the reader and make him understand how some patterns emerge as natural solutions for some problems. No prior knowledge is needed apart from basic Java and Object-Orientation. The book uses a style of OO Java that borrows heavily from functional programming ideas. Funny yet sophisticated, accessible yet surprisingly deep. Expect to reread this book several times.
Patterns and Software: Essential Concepts and Terminology also has a nice self-contained online introduction to pattern concepts. One of the GoF authors, John Vlissides, has an interesting article called Patterns: The Top Ten Misconceptions, where he addresses some common criticisms of patterns.
The standard reference for J2EE-specific patterns is Core J2EE Patterns: Best Practices and Design Strategies, a Sun Microsystems book published by Prentice Hall. The text for the second part of the book, the pattern catalog itself, is available from sun.com at the Core J2EE Patterns: Patterns index page. Just click on each pattern to access its detailed description, complete with UML diagrams and sample code. J2EE Patterns Catalog, another Sun page, has links to some alternative descriptions. Designing Enterprise Applications with the J2EE Platform, Second Edition, another Sun book, also has some J2EE pattern information and is now available for free both in HTML and PDF formats.
TheServerSide.com has an Enterprise Java Patterns page listing several patterns, and their EJB Design Patterns book is freely available in PDF format. Be sure to check their useful J2EE Application Server Matrix on the way out.
The original c2.com Wiki by OO veteran Ward Cunningham has a concise History of Patterns, a classification of Pattern Categories and a Pattern Related Book List.
The Hillside Group was created by several pattern pioneers and has a Pattern Catalog with links to several other pattern pages.
Recent Comments