Design Patterns

Learn the classic design patterns through realistic TypeScript examples: what each one is for, when it helps, when it is over-engineering, and the modern alternatives that often replace it.

Start course →

What you'll learn

  • Explain what design patterns are, the Gang of Four categories and the principles behind them.
  • Apply creational patterns such as Factory, Builder and Dependency Injection, and recognise when Singleton hurts.
  • Use structural patterns such as Adapter, Decorator, Facade, Proxy and Composite on realistic code.
  • Model behaviour with Strategy, Observer, Command, State and Chain of Responsibility, including function-based alternatives.
  • Judge when a pattern is over-engineering and spot common anti-patterns and code smells.
  • Recognise and name patterns confidently in code reviews and interviews.

Syllabus

Foundations of Design Patterns

  1. What Design Patterns Are
  2. The Principles Behind the Patterns
  3. When Patterns Help and When They Hurt

Creational Patterns I: Factories and Builders

  1. Factory Method and Simple Factories
  2. Abstract Factory
  3. Builder

Creational Patterns II and Dependency Injection

  1. Singleton and Why It Is Often an Anti-Pattern
  2. Prototype and Cloning
  3. Dependency Injection as a Pattern

Structural Patterns I: Adapter, Decorator, Facade

  1. Adapter
  2. Decorator, Function Decorators and Middleware
  3. Facade

Structural Patterns II: Proxy, Composite, Bridge and Flyweight

  1. Proxy
  2. Composite
  3. Bridge and Flyweight in Brief

Behavioural Patterns I: Strategy, Observer, Command

  1. Strategy and Functions as Strategies
  2. Observer, Pub/Sub and Event Emitters
  3. Command

Behavioural Patterns II: State, Pipelines and Traversal

  1. State and State Machines
  2. Template Method and Chain of Responsibility
  3. Iterator and Visitor in Brief

Applying Patterns in Real Projects

  1. Architectural Patterns Overview
  2. Anti-Patterns and Code Smells
  3. Patterns in Interviews and Code Review
  4. A Design Patterns Checklist