Most Design Patterns are based on "Factory Classes" which provide the correct class depending on the objects that are to be created.If u are creating largely similar objects in your applications then Design patterns will enhance the re-usability of your components.
Of course, it is possible to build an application without making use of patterns, but doing so will result in an application that is harder to understand - particularly if you have a team of developers working on it since each developer will have their own way of solving a particular problem. While this isn't bad, it just makes for a more unmaintainable system since it's harder for anybody to dive in and pick up what is going on. In essence, patterns provide reusable solutions to common problems, and a common language with which to talk about them. As a first step, I would familiarise yourself with the original, "Gang of Four" design patterns, and then move on to look at the J2EE patterns that describe reusable solutions to common problems found in the design and implementation of J2EE systems. Also, Floyd from theserverside.com has recently released a book cataloging and describing the EJB related patterns in much more detail. Take a look at EJB Design Patterns. Finally, if you are after patterns related specifically to the web-tier of J2EE systems, I wrote a chapter for Professional JavaServlets 2.3 called Designing Web Applications and Servlet Patterns, that is available to download frm my website. Oh, and don't forget to check out Greg's book in this weeks giveaway! Good luck! Simon [ May 07, 2002: Message edited by: Simon Brown ]