Patterns are a way to describe some best practices used in designing software applications. A pattern describes a solution to a recurring design problem. The best resource for patterns is the Design Patterns: Elements of Reusable Object-Oriented Software book by the Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides).

The design patterns in the GoF book are broken down into three subsections: Creational, Structural, and Behavioral patterns.

Creational patterns are used to create objects in an application. Patterns like Factory Method are used to defer the instantiation of an object to inherited subclasseswhile the Composite pattern allows for a recursive, tree structure of containers and elements.

Structural patterns are used to design the structure of modules in an application. For example, adapter can be used to modify an existing module to work with a developing module. The bridge pattern has a similar use. The composite pattern can also be considered a structural pattern because of the tree structure that is created.

Behavioral patterns describe how objects communicate with each other. The observer pattern is used to notify many classes of a change in the application. The mediator pattern can be used to augment communication between classes, without all of the classes knowing about each other.

Author: Laurie Williams and Sarah Heckman
Maintained By: Sarah Heckman
Last Updated: 2008-08-14