Skip to content

Software Engineering

Learn Java Design Patterns and how to apply them in your projects.

Design Patterns Escape Room Edition

Strategy Design Pattern

Defines a family of algorithms, encapsulates each one, and lets you swap them at runtime without changing the client code.

Observer Design Pattern

Establishes a one-to-many dependency so when one object’s state changes, all its dependents are automatically notified and updated.

Decorator Design Pattern

Dynamically adds new behaviors or responsibilities to objects without altering their underlying structure.

State Design Pattern

Allows an object to change its behavior when its internal state changes, appearing as if it has switched class.

Factory Design Pattern

Provides an interface for creating objects without specifying their concrete implementation.

Singleton Design Pattern

Ensures a class has only one instance and provides a global point of access to it.

Facade Design Pattern

Offers a simplified, unified interface to a complex subsystem, hiding its internal details.

Iterator Design Pattern

Provides a way to access elements of a collection sequentially without exposing its underlying representation.

Command Design Pattern

Encapsulates a request as an object, letting you parameterize actions, queue them, and support undo/redo.