What Is Polymorphism Used For in Real Architecture?

What Is Polymorphism Used For in Real Architecture?

A calm, thorough guide to how polymorphism shows up in real, professional software architecture: the play-button and TV-remote analogies, what polymorphism really means (many forms, one shared instruction, substitutability), the two main types (compile-time / runtime) plus the extras (parametric, coercion), method overloading and operator overloading, method overriding and the…

Read More
Composition Over Inheritance

Composition Over Inheritance

A gentle, thorough guide to one of the most useful ideas in software design: the box-of-clip-together-blocks vs. pre-molded-figure analogy, what inheritance really gives you (code reuse, polymorphism, specialization), what composition really is (holding and delegating), the two flavors composition/aggregation, the is-a vs has-a sentence test with the classic Penguin/FlyingBird and…

Read More
What Is Immutability, and Why Does It Matter in Design?

What Is Immutability, and Why Does It Matter in Design?

A calm, thorough guide to immutability as a software design principle: the sealed-photograph vs. editable-document analogy, the formal definition (immutable object vs. unchangeable variable), a direct mutable-vs-immutable comparison table, the historical origins in 1950s functional programming and Java’s immutable String, a side-by-side building-blocks diagram of shared mutable vs. shared immutable…

Read More