Skip to main content

3 docs tagged with "components"

View all tags

Chapter 12: Components

Components are the units of deployment — JARs, DLLs, shared libraries. Martin traces their history from early relocatable binaries to modern package managers, establishing the foundation for the component cohesion and coupling principles that follow.

Chapter 13: Component Cohesion

Three principles govern which classes belong in which component: REP (Reuse/Release Equivalence), CCP (Common Closure), and CRP (Common Reuse). They form a tension triangle — understanding the trade-offs helps you choose the right grouping strategy for your project's stage.

Chapter 14: Component Coupling

Three principles govern dependencies between components: ADP (no dependency cycles), SDP (depend in the direction of stability), and SAP (stable components should be abstract). These principles shape large-scale architecture and determine which components can evolve independently.