Francesco Sannicola

Machine Learning | Software Engineering

./articles/Object-Oriented Design Patterns (WIP)

Last modified:

Design patterns describe reusable approaches to recurring software design problems. The Gang of Four catalog organizes them around three concerns: how objects are created, how they are composed, and how they collaborate.

Explore the category that matches your design problem. Each guide connects the intent of a pattern to practical examples, implementation trade-offs, and situations where it is useful.

Object creation

Creational Design Patterns

How should objects be created?

Explore object creation and lifecycle decisions, from selecting an implementation to assembling, copying, or sharing an instance.

  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Singleton
Explore Creational patterns

Object composition

Structural Design Patterns

How should objects fit together?

Organize classes and objects into flexible structures, adapt interfaces, and compose responsibilities behind clear boundaries.

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy
Explore Structural patterns

Object collaboration

Behavioral Design Patterns

How should objects work together?

Describe communication and shared responsibilities, with patterns for algorithms, requests, notifications, and coordinated behavior.

  • Iterator
  • Command
  • Strategy
  • Observer
  • Chain of Responsibility
  • Template Method
  • State
  • Mediator
  • Memento
  • Visitor
Explore Behavioral patterns