Posts
All the articles I've posted.
Design Patterns Part 6 — Decorator and Proxy
Decorator extends functionality without inheritance, Proxy takes charge of access control and lazy loading. A code-driven comparison of two patterns...
Design Patterns Part 5 — Factory Method, Abstract Factory, Builder
How Factory Method, Abstract Factory, and Builder each solve the coupling problem that arises from using new directly, compared with code examples.
Design Patterns Part 4 — Template Method and Chain of Responsibility
Template Method fixes the algorithm skeleton and lets subclasses fill in the details. Chain of Responsibility passes requests along a handler chain....
Design Patterns Part 3 — Observer and Command
Observer notifies of state changes, Command encapsulates requests as objects. A code-driven comparison of two patterns at the heart of event-driven design.
Design Patterns Part 2 — Strategy and State
Two ways to swap behavior. Strategy swaps algorithms, State changes behavior based on state. A comparison of two patterns that share the same structure...
Design Patterns Part 1 — Why Learn Patterns
An overview of the GoF 23-pattern taxonomy, how to read a pattern, and when to use or avoid them. The starting point of the design patterns series.
OOP Design Principles Part 5 — Composition over Inheritance
Exploring GoF's advice to favor composition over inheritance. We cover what inheritance breaks, how to achieve the same functionality with composition,...
OOP Design Principles Part 4 — TDA, Law of Demeter, CQS
Covering the rules of communication between objects. We explore TDA — don't ask for state, tell the object what to do; the Law of Demeter — don't talk...
OOP Design Principles Part 3 — DIP
Covering the final SOLID principle: DIP. We explore what it means to invert the direction of dependencies, and how it differs from Spring's DI, through...








