Design patterns in software domain are specific receipts allowing construction of applications using blocks of code that is known and well understood by wide range of software engineers. Usually patterns are something more than few specific data structures or functions, otherwise you could just re-use some public implementation. Instead you need to learn definition of each of patterns and then you will be able to understand software using it.
There are the following pattern types defined: creational: define how objects are created behavioral: define how objects interact with each other * structural: define object composition
For longer description see Design Patterns - Wikipedia.org
Universal design patterns
There is a class of patterns defined once by "Gang Of Four" - see book description below. These patterns can be used in any language and do not depend on used framework or technology.
- Design Patterns - oodesign.com
- Design Patterns in Java
- Java Design Patterns - Example Tutorial
- Design Patterns in Java - Tutorial - Lars Vogel, 2010
- Java Design Patterns Tutorial - Java Code Geeks
- Design Patterns - SourceMaking
- "Design Patterns: Elements of Reusable Object-Oriented Software", The "Gang of Four": Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides, 1994
- Head First Design Patterns - Eric Freeman / Elisabeth Robson / Bert Bates / Kathy Sierra, 2004
- "Design Patterns Explained. A New Perspective on Object-Oriented Design" - Alan Shalloway / James R. Trott
- Design Patterns. Building Maintainable and Scalable Software - free ebook (RefCard) from dzone
- Thinking in Patterns - Bruce Eckel, 2003 (free download)
While developing software for JEE platform you can step on software which uses JEE-specific design patterns. Below you can find resources related to that domain.
- "EJB Design Patterns: Advanced Patterns, Processes, and Idioms" - Floyd Marinescu, 2002
- Core J2EE Patterns - Deepak Alur, John Crupi, Dan Malks, 2004
- "Professional Java EE Design Patterns" - Murat Yener / Alex Theedom / Reza Rahman, 2014
- "Java Enterprise Design Patterns" - Mark Grand, 2002
- "J2EE Best Practices. Java Design Patterns, Automation, and Performance" - Darren Broemmer, 2003
- "Patterns of Enterprise Application Architecture" - Martin Fowler, 2002
- "Real World Java EE Patterns" - Adam Bien, 2012