Category Pattern

Press the title to see all pages of this category, or go back to the main Portland Pattern Repository page.

A pattern describes a solution to conflicting forces, to quote Christopher Alexander, "in such a way that you can use this solution a million times over, without ever doing it the same way twice."

Christopher ALEXANDER was writing primarily about architecture, construction, and urban/regional planning -- how people organize their environment. His ideas about patterns have been applied to software development by Ward Cunningham and others.

Patterns are one of the main reasons for wiki wiki.

See Category Anti Pattern for commonly used patterns of behavior that often produce undesirable results.

Comments on selected pages:

Test If Date Ranges Overlap [Maybe it's just an idiom. ;-]

Interface Factories [Java idiom]

Patterns using the Design Patterns Book categorization scheme:

Singleton Pattern:
a class of which only a single instance can exist.

Utility Pattern:
a class for which no instances exist.

Adapter Pattern:
adapt the interface of one class to another

Bridge Pattern:
decouple an abstraction from its implementation so that the two can vary independently

Decorator Pattern:
attach additional responsibilities to an object dynamically.

Facade Pattern:
a single class that provides a unified interface to an entire subsystem.

Annotated Callback:
supply a large number of callbacks to a library (proposed)

Command Pattern:
encapsulate a command request as an object.

Iterator Pattern:
sequentially access the elements of a collection.

Memento Pattern:
capture and restore an object's internal state.

Observer Pattern:
when one object changes state, a list of "observer" objects is notified.

Other Common Patterns:

Life Cycle Patterns



Pattern Backlash (Pattern Criticism)

Design Patterns -- discussion on patterns in general

Design Pattern Template -- tips on creating new pattern pages

For another way to organize patterns, see Categorizing Patterns. Software Design Patterns Index (With cross references to other names for the same pattern.)

See original on