// Learning · 03
All 23 Gang of Four patterns: named, proven shapes for problems that keep coming back.
Create families of related objects without naming their classes.
Assemble a complex object step by step, then build it.
Let one method decide which concrete class gets created.
Create new objects by copying a configured instance.
Exactly one instance; let the container own it, not a static.
Make one interface look like the one your code expects.
Split an abstraction from its implementation so both can vary.
Treat single objects and groups of them through one interface.
Wrap an object to add behaviour without changing it.
One simple front door to a complicated subsystem.
Share the common part of many small objects to save memory.
A stand-in that controls access to the real object.
Pass a request along a chain until a handler deals with it.
Turn a request into an object you can queue, log or undo.
Represent a small language as a tree of objects that evaluate.
Walk a collection without exposing how it is stored.
Route interactions through one object instead of a web of calls.
Capture an object's state to restore later, without exposing it.
Let many listeners react to one event without knowing them.
Let an object change its behaviour when its state changes.
Pick an algorithm at runtime behind one interface.
Fix the steps of an algorithm, let subclasses fill some in.
Add operations to a stable set of types without editing them.