Learn
- Design pattern Web sites
- Brian Foote's Web site (http://www.laputan.org/foote/papers.html) is a virtual treasure trove for the student of design patterns. (At the time we went to press, this Web site was unavailable. Welcome to the ever-changing world of the Web!)
- Martijn van Welie's patterns site (http://www.welie.com) contains many patterns that are applicable to user-interface and Web-usability design.
- You'll find the Simple Policy and Property Container patterns on IBM's Patterns for e-business site (http://www.ibm.com/developerworks/patterns/index.html).
- The Front Controller pattern is one of several useful J2EE design patterns you'll find on Sun Microsystems's Java BluePrints site (http://java.sun.com/blueprints/index.html).
- The Object Management Group (http://www.omg.org) is responsible for the Event Channel design pattern.
- The Patterns for e-business Web site has been updated with new Access Integration designs (http://www.ibm.com/developerworks/patterns/access/index.html) that enable users to access multiple back-end systems through a single sign-on process, either from a browser or now from pervasive device clients. Access Integration also lets you personalize content based on user role, identity, and preferences. Learn more about these powerful designs.
-
Articles and tutorials
- The tutorial " Java design patterns 101 " ( developerWorks, January 2002, http://www.ibm.com/developerworks/education/r-jpatt.html) is an introduction to design patterns. Find out why patterns are useful and important for object-oriented design and development, and how patterns are documented, categorized, and cataloged. The tutorial includes examples of important patterns and implementations.
- Paul Monday's recent tutorial " Java event delivery techniques " ( developerWorks, February 2002, http://www.ibm.com/developerworks/education/r-jdel.html) expands upon the brief discussion of JMS found here.
- Malcolm Davis's article " Struts, an open-source MVC implementation " (developerWorks, February 2001, http://www.ibm.com/developerworks/java/library/j-struts/) introduces the MVC architecture, on which the Front Controller design pattern is based. This article also deals extensively with JMS and Servlets technologies.
- Embrace the dark side of programming with design patterns! " A taste of Bitter Java " (developerWorks, March 2002, http://www.ibm.com/developerworks/java/library/j-bitterjava/) is a preview of Bruce Tate's upcoming book about antipatterns, which he describes as "common traps for developers with dire consequences".
- Patterns architects discuss emerging Web services technology (http://www.ibm.com/developerworks/patterns/guidelines/web-services.pdf) and its effect on Pattern solutions.
- Recommended books
- Start with the book that launched all the rest: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, Vlissides, Addison-Wesley, 1995, http://devworks.krcinfo.com/WebForms/ProductDetails.aspx?ProductID=0201633612).
- One of the GOF, John Vlissides, also wrote the book Pattern Hatching (Design Patterns Applied) (Addison-Wesley, 1998, http://www.amazon.com/exec/obidos/ASIN/0201432935/qid=1015942491/sr=1-9/ref=sr_1_9/104-1891410-7851159).
- The Pattern Almanac 2000 (Rising, Addison-Wesley, 2000, http://www.aw.com/catalog/academic/product/1,4096,0201615673,00.html#summary) is an essential resource for the student of design patterns.
- Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects (Schmidt, Stal, Rohnert, Buschmann, Wiley, 2000, http://devworks.krcinfo.com/WebForms/ProductDetails.aspx?ProductID=0471606952) is one of those books that uses patterns to help you learn about a particular area of software development. It's also a fine addition to any patterns library.
- Along the same lines (and first in the series) is the book Pattern-Oriented Software Architecture, Volume 1: A System of Patterns (Buschmann, Meunier, Rohnert, Sommerlad, Stal, Wiley, 1998, http://www.wiley.com/Corporate/Website/Objects/Products/0,,104675,00.html).
- The upcoming Framework Process Patterns: Lessons Learned Developing Application Frameworks (Carey, Carlson, Addison-Wesley, 2002, http://www.amazon.com/exec/obidos/ASIN/0201731320/qid=1015908003/sr=1-2/ref=sr_1_2/104-1891410-7851159) is for the advanced study of design patterns. It discusses older design patterns, how they're derived, and newer patterns that apply specifically to building frameworks. One of the patterns, "Missed it by That Much," addresses the fine line between being able to apply an existing pattern and finding a new pattern.
- Also from James Carey and Brent Carlson is SanFrancisco Design Patterns: Blueprints for Business Software (Addison-Wesley, 2000, http://cseng.aw.com/book/0,3828,0201616440,00.html)
- Patterns for e-business: A Strategy for Reuse (Adams, Galambos, Koushik, Vasudeva, IBM Press, 2001, http://www.mcpressonline.com/ibmpress/5206.htm) is available in book form.
- And so is the book that spawned the Java BluePrints site, Designing Enterprise Applications with the Java 2 Platform (Enterprise Edition) (Kassem, Addison-Wesley, 2000, http://www.digitalguru.com/product_detail.asp?catalog%5Fname=Books&product%5Fid=0201702770).
- Additional resources
- You'll find hundreds of articles about every aspect of Java programming in the IBM developerWorks Java technology zone (http://www.ibm.com/developerworks/java/).
- See the developerWorks Java technology tutorials page (http://www-105.ibm.com/developerworks/education.nsf/dw/java-onlinecourse-bytitle?OpenDocument&Count=500/) for a complete listing of more free Java tutorials from developerWorks.
- See the Guide to developer kits from IBM (http://www.ibm.com/developerworks/library/i-tools.html) for a listing of the latest IBM developer toolsets.
Get products and technologies
-
Downloads
- The Java 2 platform, Standard Edition (http://java.sun.com/j2se/) is available from Sun Microsystems.
- The Tomcat 4.0.3 Servlet Engine (http://jakarta.apache.org/tomcat/) contains all the J2EE functionality you need to complete this tutorial.
- The Netbeans (http://www.netbeans.org) development environment was used to develop all the examples used here.

