All Posts
Thoughts on code and poetry.
Adapter Pattern
We run into adapters in real life all the time: power‑plug adapters, HDMI–to–USB‑C dongles, language interpreters. Software has the same problem — two sides that need to talk, but …
Proxy Pattern
Any time you click something and it looks like the real object, but behind the scenes there’s access control, caching, logging, or lazy loading happening — that’s the Proxy pattern …
Visitor Pattern
Every time you think “I need to run a bunch of different operations over this object hierarchy, but I really don’t want to keep changing those classes”, you’re in Visitor …
Template Method Pattern
If you’ve ever created a base class with a run() method that calls a series of steps, then let subclasses override only a few of those steps, you’ve already reinvented the Template …
Strategy Pattern
Any time you choose between “pay with card”, “pay with PayPal”, or “pay with bank transfer”, you’re bumping into the idea behind the Strategy pattern. Strategy is a behavioral …
State Pattern
You’ve probably written code where an object’s behavior depends on some status or mode field — and then watched a simple if turn into a giant nested if/else or switch as features …
Observer Pattern
Any time you subscribe to something — a newsletter, a Twitch stream, a weather app — you’re living in the world of the Observer pattern. Observer is a behavioral design pattern …
Memento Pattern
Sometimes you just want to hit undo and pretend the last few minutes never happened — in your editor, not in life (unfortunately). That’s exactly the kind of problem the Memento …
Chain of Responsibility Pattern
The Chain of Responsibility pattern is what you reach for when you want to send a request into a pipeline and let whoever can handle it, handle it. It’s a behavioral pattern that …
Singleton Pattern
The Singleton pattern is likely the most famous—and most abused—creational pattern. It restricts a class to a single instance and exposes a global way to access it. Used carefully, …