Pattern Templates

According to Christopher Alexander, "Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice."

I think the value of patterns is two key things:
1. Concise solution descriptions
2. A common vocabulary

I also think the best way to think about patterns is that they are a simple way to share strategies and principles.  By naming them, you give them a simple handle.

Recently, a colleague asked me for a simple pattern template, and I didn’t have anything to just point to, so I did a quick roundup of some examples.

Pattern Templates
Here are example pattern schemas and pattern templates from a few key sources:

Source

Template
C2.com
  • Name
  • Context
  • Problem
  • Forces
  • Solution
  • Resulting Context
  • Known Uses
  • Example
  • Related Patterns
Enterprise Solution Patterns
  • Context
  • Problem
  • Forces
  • Solution
  • Example
  • Resulting Context
  • Benefits
  • Liabilities
  • Related Patterns
Patterns for Enterprise Solution Architecture
  • Name
  • Intent
  • Sketch
  • Motivating Problem
  • How It Works
  • When to Use It
  • Further Reading
Prescriptive Guidance
  • Title
  • Context
  • Problem
  • Forces
  • Solution
  • Considerations
  • Additional Resources
  • Related Items
Real-Time Design Patterns
  • Abstract
  • Problem
  • Pattern Structure
  • Collaboration Roles
  • Consequences
  • Implementation Strategies
  • Related Patterns
  • Sample Model
Web Services security Patterns
  • Context
  • Problem
  • Forces
  • Solution
  • Resulting Context
  • Extensions
Windows Azure Design Patterns
  • Problem
  • Solution
  • Analysis
  • Example
  • Related Patterns

Sample Patterns

Source

Sample
C2.com Component Bus
Enterprise Solution Patterns Three-layered Services Application
Web Services security Patterns Trusted Subsystem Pattern
Windows Azure Design Patterns

Hosted Service

Pattlets
Pattlets were used in Enterprise Solution Patterns to briefly summarize a pattern, without fully documenting it.  Here are a few samples:

Item

Description
Abstract Factory Provides an interface for creating families of dependent objects without specifying their concrete classes.
Application Controller Is a centralized point for handing screen navigation and the flow of an application.
Facade Provides a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.

A page of pattlets is available on MSDN.

Key Links