Design Patterns#

Thirty-nine sections, from what coupling actually costs to how Visitor's double dispatch works. Each section builds only on the ones before it, so the course reads straight through. Each pattern is also self-contained enough to look up on its own when you meet it in a code review. Every pattern section follows the same order: the problem, the structure, a full implementation in Python and TypeScript, the trade-offs, and an interview question. Press Play on any animation.

39 Topics • Interactive Animations, Full Implementations & Worked Questions
Unit 1

Foundations#

The ideas every pattern is built from: coupling and cohesion, the vocabulary of class diagrams, the five SOLID principles, and the choice between inheritance and composition.

Unit 2

Creational Patterns#

Five GoF patterns, plus dependency injection: who decides which class gets instantiated, when it happens, and how the rest of the code is kept from caring.

Unit 3

Structural Patterns#

Seven patterns about how objects are assembled into larger structures: wrapping one object to change its interface or add behaviour, bridging two hierarchies, building trees, and sharing what doesn't need to be copied.

Unit 4

Behavioural Patterns#

Eleven patterns about how objects divide up work and communicate: swapping algorithms, fixing an algorithm's skeleton, announcing events, turning requests into objects, changing behaviour with state, passing requests along, walking collections, coordinating peers, saving and restoring state, adding operations to a structure, and evaluating small languages.

Unit 5

Beyond the Gang of Four#

Patterns that grew up after 1994, the way first-class functions change the catalogue, and the judgement to know when a pattern is making code worse: anti-patterns, refactoring toward and away from patterns, and designing for tests.

Unit 6

Wrap-Up#

Everything on a few pages: the whole catalogue in tables, a playbook for recognising which pattern a problem needs, and a plan for practising until the choice becomes instinct.