Composite Pattern Explained: Files, Folders, and Trees
Show notes for the Composite Pattern video — when to use it, real-world examples (file systems, the DOM, React trees), and a code-free mental model.
Object-oriented programming as a working tool: inheritance, composition, polymorphism, encapsulation, and where each one helps or gets in the way.
8 posts below, newest first.
Show notes for the Composite Pattern video — when to use it, real-world examples (file systems, the DOM, React trees), and a code-free mental model.
Bridge Pattern - the fix for class hierarchies that explode into `RedCircle`, `BlueCircle`, `RedSquare`, `BlueSquare`.
Adapter Pattern - the software version of a USB-C to USB-A dongle. When two pieces of code need to talk to each other but their interfaces don't match, Adapter…
Singleton Pattern - the most controversial design pattern in software. Half the developers call it an anti-pattern, the other half use it every day. So who's right?
Prototype Pattern - when creating an object from scratch is expensive, clone an existing one instead. This is also where shallow-copy vs deep-copy bugs come from.
Builder Pattern - stop writing constructors with 12 parameters. This is the cleanest way to construct complex objects step by step.
Abstract Factory Pattern explained with the matching-showroom analogy - the creational pattern for when you need to produce entire families of related objects together.
Factory Method Pattern vs Simple Factory Pattern - the exact difference most tutorials never make clear, and a classic software engineering interview question.
Subjects that frequently appear alongside #oop. Click through to see every post on each one.
The Gang-of-Four patterns reframed without the ceremony. When each pattern solves a real problem, when it is overkill, and the code smells that call for it.
The craft of building software well — design, testing, refactoring, performance, security, tooling, and the trade-offs that aren’t in the Stack Overflow answer.
Patterns for creating objects without coupling client code to concrete classes — Singleton, Factory Method, Abstract Factory, Builder, Prototype. With practical guidance on when each one actually helps.
Patterns for composing classes and objects into larger structures while keeping the system flexible and efficient — Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.