---
title: Design Patterns
description: Design patterns are reusable, standardized solutions to common software design problems. You will understand how to apply creational, structural, and behavioral patterns to write maintainable, scalable, and efficient code.
category: engineering
subcategory: software-engineering
difficulty: beginner, intermediate, advanced
url: /subject/design-patterns
---

# Design Patterns

Design patterns are reusable, standardized solutions to common software design problems. You will understand how to apply creational, structural, and behavioral patterns to write maintainable, scalable, and efficient code.

## Available Resources

1 Courses • 3 Websites

## Websites

### 1. Game Programming Patterns

Robert Nystrom's complete book, readable free online, revisits classic patterns such as Command, Observer, and State through game code, then adds game-specific ones like Game Loop, Component, and Object Pool, with C++ examples and frank discussion of each pattern's performance and design trade-offs.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://gameprogrammingpatterns.com/

**Tags:** design-patterns, game-programming, software-architecture, c++, game-loop

### 2. Refactoring Guru - Design Patterns

Illustrated catalog of the 22 classic Gang of Four patterns, grouped as creational, structural, and behavioral. Each entry explains the problem, the solution structure with UML diagrams, applicability, pros and cons, and working code in several languages including Java, Python, and TypeScript.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://refactoring.guru/design-patterns

**Tags:** design-patterns, gang-of-four, object-oriented-design, refactoring, uml

### 3. refactoring.guru

Refactoring.guru is a comprehensive learning hub for software engineers focused on design patterns and refactoring, offering clear explanations, code examples in multiple languages, and visual diagrams. It covers the Gang of Four design patterns, refactoring techniques, and practical guidance for writing clean, maintainable code.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://refactoring.guru

**Tags:** websites, technology-computer-science, computer-sciences

## Courses

### 1. Advanced Design Patterns

University of Alberta course taught by Kenny Wong covering creational, structural, and behavioural patterns in Java, plus design principles and code smells. Learners practise by identifying anti-patterns and refactoring an Android application in a capstone assignment.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://www.coursera.org/learn/design-patterns

**Tags:** courses, technology-computer-science, software-engineering

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/design-patterns