/patterns

Design Patterns

MIT LicenseMIT

Design Patterns

Overview

If you're new to Patterns, start with the Open Group's introduction to patterns 🔗 and Brad Appleton's patterns introduction 🔗. See the definition of Patterns as described in TOGAF Architecture Patterns 🔗.

References on this site use the MLA Citation format from the MLA Handbook.

Types of Patterns

Architecture Pattern

An architecture pattern expresses a fundamental structural organization or schema for complex systems. It provides a set of predefined subsystems, specifies their unique responsibilities, and includes the decision-enabling rules and guidelines for organizing the relationships between them. The architecture pattern for a software system illustrates the macro-level structure for the whole software solution. An architectural pattern is a set of principles and a coarse-grained pattern that provides an abstract framework for a family of systems. An architectural pattern improves partitioning and promotes design reuse by providing solutions to frequently recurring problems. Precisely speaking, an architectural pattern comprises a set of principles that shape an application.

Design Pattern

A design pattern provides a scheme for refining the subsystems or components of a system, or the relationships between them. It describes a commonly recurring structure of communicating components that solves a general design problem within a particular context. The design pattern for a software system prescribes the ways and means of building the software components. The design pattern articulates how the various components within the system collaborate with one another in order to fulfill the desired functionality.

Pattern Catalog