~ Progress Map ~

Skill Tree

Your journey through all 22 design patterns. Complete quests to unlock the next.

Done
Ready
Locked
CreationalStructuralBehavioralFactory Method

Decouple object creation from usage. Add new types without modifying existing code.

Abstract Factory

Create consistent product families. Swap entire themes or variants in one place.

Builder

Build complex objects with readable fluent APIs. Avoid telescoping constructors.

Prototype

Duplicate objects without knowing their concrete classes. Build prototype registries.

Singleton

Control shared resource access. Ensure single-instance services like loggers and configs.

Adapter

Integrate third-party libraries without modifying existing code. Bridge incompatible APIs.

Bridge

Eliminate class explosion from multi-dimensional inheritance. Evolve dimensions independently.

Composite

Build recursive tree structures (menus, file systems, UI). Treat leaves and branches uniformly.

Decorator

Stack behaviors dynamically at runtime. Combine features without subclass explosion.

Facade

Hide subsystem complexity behind a simple API. Reduce coupling between layers.

Flyweight

Optimize memory for millions of similar objects. Separate intrinsic from extrinsic state.

Proxy

Add lazy loading, caching, access control, and logging without modifying the real object.

Chain of Responsibility

Build flexible middleware pipelines. Add/remove/reorder handlers without coupling.

Command

Implement undo/redo, queuing, scheduling, and macro recording for any operation.

Iterator

Traverse any data structure uniformly. Swap traversal algorithms without changing clients.

Mediator

Decouple N components from each other. Centralize complex interaction logic.

Memento

Implement undo/redo and snapshots without breaking encapsulation.

Observer

Build event-driven systems. Decouple publishers from subscribers completely.

State

Eliminate state-based conditionals. Add new states without modifying existing ones.

Strategy

Swap algorithms at runtime. Isolate and unit-test each algorithm independently.

Template Method

Enforce algorithm structure while allowing step customization. Eliminate duplicated skeletons.

Visitor

Add new operations to object hierarchies without modifying their classes.