Andrew's Digital Garden

Coupling and Cohesion

One of the touted goals in Software is Low Coupling, High Cohesion.

Coupling How much do elements know about the inner workings of another element? How much do they depend on one another? Can they be broken apart? The relationship among different modules, classes, components, etc.

We want to keep this low, so things are [[20200307101703-easy-to-change]].

Cohesion How much the elements actually belong together. How strong is the relation? Elements within a module should ideally do one particular thing. Related to the [[20221010033955-single-responsibility-principle]]. Refers to the elements within a module, class, component, etc.

https://stackoverflow.com/questions/14000762/what-does-low-in-coupling-and-high-in-cohesion-mean

[[20200307104931-orthogonality]] [[20200307101703-easy-to-change]]

[[concepts]] [[principles]]

Coupling and Cohesion