Patterns in a Nutshell

The "bare essentials" of Software Patterns

by Brad Appleton <brad@bradapp.net>
http://www.bradapp.net/


Table of Contents
What are Patterns?
Pattern Origins and History
Pattern Definitions
Kinds of Software Patterns
Pattern Elements   (continued)
Why Patterns?
Summary - What Patterns Are Not
Summary - What Patterns Are
Pattern Resources - Books
Pattern Resources - Internet


What are Patterns?

Trendy:

Recent "hot-topic", OOD buzzword, lots of "hype"

Literary:

Form of software engineering problem-solving documentation

Pragmatic:

Describe practical solutions to "real world" problems

Recurring:

Identify good design structures which recur in practice

Generative:

Show how/when to apply the solution, and generate the desired design structure

Emergent:

Larger solutions emerge indirectly from applying patterns in succession, and in concert together


Pattern Origins and History


Pattern Definitions

A "pattern" is ...


Kinds of Software Patterns


Pattern Elements

Name

Context

Problem

Forces

Solution


Pattern Elements (continued)

Examples (optional)

Resulting Context

Rationale (optional)

Related Patterns

Known Uses


Why Patterns?

Software Patterns help us because they:


Summary - What Patterns Are Not

Software Patterns are not ...


Summary - What Patterns Are

Software Patterns are ...


Pattern Resources - Books


Pattern Resources - Internet