Writing on React, web performance, and the craft of building software.
Not part of the Gang-of-Four catalog: the Module pattern and the prototype chain, two patterns JavaScript already builds into the language itself.
Swapping an algorithm out at runtime by wrapping each variant behind the same interface.
Letting one object broadcast a change without knowing or caring who is listening for it.
Adding behavior to a single object at runtime by wrapping it, instead of subclassing every combination.
Letting subclasses decide which concrete class to instantiate, instead of hardcoding it in the caller.
Producing whole families of related objects that are guaranteed to work together.
Guaranteeing a class has exactly one instance, and the global-state costs that guarantee actually carries.