New York
home > Design Patterns Email

Design Patterns

- intro & common patterns
- algorithms

intro & common patterns home - top of the page - email
1970-s: "A Pattern Language" , by C. Alexander, et al. , 1977 (available at
1980-s: Hillside Group - Beck, Ward, Coplien, Booch, Kerth, Johnson, etc.
1995 - the famous book - "Design Patterns: Elements of Reusable Object Oriented Software", 1995, by the so-called Gang of Four (GoF), that is Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides - see their photo:
Common patterns - examples in Java:
A 3-volume series "Patterns in Java" by Mark Grand contains approx. 135 patterns with Java code examples on CDs.
See patterns descriptions on Mark Grand's home page which has outlines of all 3 volumes:
  vol1 - basic 41 patterns
  vol2 - 50 patterns that apply to phases of the software development cycle other than design
  vol3 - 44 patterns for the enterprise

Here is a one-page compilation of all 3 outlines.  -  FAQ - Patterns Page

Here is a list of some common patterns:
Model-View Controller | The Clone Idiom | Prototype | Factory | Singleton | Abstract Factory | Bridge | Proxy | Iterator | Composite | Flyweight | Interpreter | Visitor | Chain of Responsibility | Memento | Command | All of Me | State | Decorator | Observer | Adapter | Facade | Template | Mediator | Strategy

See longer list with definitions and examples here: - Concurrent Programming in Java : Design principles and patterns. Online Supplement to the book. - Christopher Alexander: An Introduction for Object-Oriented Designers - Patterns in Java AWT - A Learning Guide To Design Patterns - The Design Patterns Study Group of New York City - very good site - list of books (links to - another list of books (goes back to 1977 C.Alexander). - Design Patterns and the Java AWT - article discusses prototype application - Design Patterns in Java : Conservator, Observer, Singleton,  Waiter. - list of books with short descriptions - Introduction to "Design Patterns and Contracts" (Book) - The "Design Patterns Java Companion" by James W. Cooper
(Download the entire book as a zipped PDF file, or download all of the Java example code) - Patterns for Concurrent, Parallel, and Distributed Systems

Algorithms home - top of the page - email - Data Structures and Algorithms with Object-Oriented Design Patterns in Java (by Bruno R. Preiss,, Canada)

UML home - top of the page - email
UML (Unified Modeling Language) - is used to develop object-oriented programs.
UML was conceived by Rational and its chief scientist Grady Booch (who soon joined forces with Ivar Jacobson and Jim Rumbaugh).
UML is an accepted standard of the Object Management Group (OMG), home of CORBA ( ).
UML specifies how to describe class (of objects), object, association, responsibility, activity, interface, use case, package, sequence, collaboration, and state.

FAQs: - quick start FAQ - old faq - - - - -

Links: - UML on "Open Directory" - many links, structured by subject - UML on Google

Books (UML):
The definitive guides are from Grady Booch, Jim Rumbaugh, and Ivar Jacobson (The Addison-Wesley Object Technology Series) :
  The Unified Modeling Language User Guide
  The Unified Modeling Language Reference Manual
  Unified Software Development Process

UML Distilled, Second Edition: A Brief Guide to the Standard Object Modeling Language (The Addison-Wesley Object Technology Series) by Martin Fowler, Kendall Scott (Contributor), Grady Booch
Fundamentals of Object-Oriented Design in UML (The Addison-Wesley Object Technology Series) by Meilir Page-Jones, Larry L. Constantine
Applying UML and Patterns - The Complete Video Course (Boxed Set) [NTSC] by Craig Larman - books about UML. - Rose Architect - magazine (free) - online tutorials

More Links: -  A Unified Object Modeling Approach - includes a brief but illustrated introduction to UML. - this article has relatively full explanation of UML. - A Unified Modeling Language Resource Center is available at Rational Software. documentation - Computer Associates UML Center - UML books and tools - Objects by Design (tools, etc.) - QOSES - portal - Software Development Online - Object News newsletter

Tools: - Rational Rose - the world's leading visual modeling tool. - TogetherJ from TogetherSoft - lists many tools - MagicDraw is a visual UML modeling and CASE (computer-aided software engineering) tool with teamwork support. - open source - commercial version of ArgoUML called Poseidon for UML . The community addition is free which includes all UML diagrams and all implemented diagram elements. You can save and load projects, generate Java code, reverse engineer from Java code and much more. It offers everything ArgoUML offers plus some extra features like undo/redo, drag-and-drop, copy/cut/paste and a better stability. - a tool called Enterprise Architect.  It is relatively cheap(less than $200) and fullfills our needs which consist mostly of documenting Use Cases, Class Diagrams and Sequence Diagrams.  It also does code generation.