Design patterns improve my skill and understanding. Through the use of
design patterns, I can improve my knowledge about a domain and find
new ways to represent complex models.
Embracing design patterns means changing the way we code. It means joining
communities where design patterns are shared. It means doing research
instead of plowing blindly into a solution. Many good sources are available.
This is a sampling of books from the Java design pattern community and the
definitive source for design patterns ( Design Patterns: Elements of Reusable
Object-Oriented Software ). As of this writing, five or more are under develop-
zon.com) is a good source for finding what's out there.
Design Patterns: Elements of Reusable Object-Oriented Software , by Erich
Gamma, Richard Helm, Ralph Johnson, and John Vlissides (The Gang
Refactoring: Improving the Design of Existing Code , by Martin Fowler,
Kent Beck (contributor), John Brant (contributor), William Opdyke,
and Don Roberts
Core J2EE Patterns , by John Crupi, Dan Malks, and Deepak Alur
Concurrent Programming in Java: Design Principles and Patterns , by
Patterns in Java, Volume 3: A Catalog of Enterprise Design Patterns
Illustrated with UML , by Mark Grand
Data Structures and Algorithms with Object-Oriented Design Patterns in
Java , by Bruno R. Preiss
Java Design Patterns: A Tutorial , by James William Cooper
Design patterns online
Manning Publications has a series of author forums for discussion. These
authors discuss server-side architectures, Java programming techniques, Java
Server Pages ( JSP s), Extensible Markup Language ( XML ), and servlets. The
author of this topic also has an online community to discuss Java antipatterns.