gaurav.ece.nitw@gmail.com

Achieving Loose Coupling Through Design Patterns

A calm, thorough guide to how design patterns achieve loose coupling: the paper-cups-and-string vs. walkie-talkies analogy, what coupling really is (and the connascence vocabulary for talking about it precisely), four reasons loose coupling matters (change stays local, testing becomes possible, teams work independently, failures stay contained), the spectrum of coupling…

Read More

Composition vs. Aggregation: The Has-A Relationship, Explained Simply

A calm, thorough guide to the difference between composition and aggregation in object-oriented design: the backpack-and-library-book analogy, association as the parent concept (with multiplicity, one-directional and two-directional links, and the UML 1990s origin story), aggregation as the loose has-a relationship (independent lifecycle, shareable parts, School-and-Teacher example), composition as the strict…

Read More

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