← Graph

Coupling

concept 8 connections

A design quality describing how tightly two software elements depend on each other. In Szydło's framing, coupling between two objects can be analyzed along four dimensions: how something is done, where it is done, who does it, and what is done. Five levels, from tightest to loosest: local method (same object — knows how/where/who/what), local instance (new'd inside — doesn't know how), external instance (reference injected — doesn't know how/where), configurable instance (interface/dependency injection — doesn't know how/where/who), notification (event handled generically — doesn't know how/where/who/what). Coupling is not inherently good or bad; high coupling is desirable inside DDD aggregates to protect invariants, loose coupling is desirable between microservices.

category
practice
Lesson illustrated with the coupling vocabulary built in the talk.
about
Coupling concept
Takeaway is specifically about when to prefer tight vs loose coupling.
about
Coupling concept
Addresses detecting coupling in legacy systems.
about
Coupling concept
The talk is a framework for discussing and evaluating coupling.
about
Coupling concept
Question asks about detecting coupling.
about
Coupling concept
Scott's central design claim is about coupling/cohesion at the subatomic level.
concept Coupling
related_to
The five coupling levels are derived by progressively loosening what a sender knows about a receiver, culminating in event-based notification.
related_to
Coupling concept
DI corresponds to the 'configurable instance' level of coupling.

Provenance

Read by
5 extractions