Last Updated: February 13, 2026
When you design a system at the low-level, you are not just deciding what classes exist. You are deciding how those classes depend on each other and how responsibilities are distributed across them.
These two decisions shape everything that follows.
Two fundamental design principles help you make these decisions well: Coupling and Cohesion.