Design Patterns

Problem

Custom solution

How not to create a bike?

Design Patterns

What’s a design pattern?

  • is typical solution to commonly problems

  • is general concept for solving problems

  • is high-level description of a solution to problems

What does the pattern consist of?

  • Intent

  • Motivation

  • Structure

  • Code example

Classification of patterns

  • Creational patterns

  • Structural patterns

  • Behavioral patterns

Creational patterns

Factory Method

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Structure

Pattern structure

Example

Pattern example

Abstract Factory

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Builder

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Prototype

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Structure

Pattern structure

Example

Pattern example

Singleton

Intent

Pattern

Motivation: problem

Pattern problem

Structure

Pattern structure

Structural patterns

Adapter

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Structure

Pattern structure

Example

Pattern example

Bridge

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Composite

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Decorator

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Facade

Intent

Pattern

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Flyweight

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Proxy

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Behavioral patterns

Chain of Responsibility

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Example

Pattern example

Command

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Iterator

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Mediator

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Momento

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Structure

Pattern structure

Structure

Pattern structure

Structure

Pattern structure

Example

Pattern example

Observer

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

State

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Strategy

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Template Method

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example

Visitor

Intent

Pattern

Motivation: problem

Pattern problem

Motivation: problem

Pattern problem

Motivation: solution

Pattern solution

Structure

Pattern structure

Example

Pattern example