Sobes.tech
Middle+

What is low coupling and high cohesion?

sobes.tech AI

Answer from AI

Low coupling and high cohesion are design principles aimed at creating maintainable, extendable, and testable code.

Low Coupling

  • Means that components (classes, modules) depend minimally on each other. Changes in one component have minimal impact on others.
  • Characteristics of low coupling:
    • Components interact through well-defined interfaces.
    • Direct access to internal details of other components is minimized.
    • Changes in the implementation of one component do not require changes in others.
  • Advantages:
    • Simplifies testing of individual components.
    • Code becomes more flexible and easier to extend.
    • Reduces the risk of errors when making changes.

High Cohesion

  • Means that elements within a component are logically related and perform a single well-defined task. A highly cohesive component is focused on one responsibility.
  • Characteristics of high cohesion:
    • All class methods relate to a single functional area.
    • The class does not contain unrelated functionality.
    • Logic related to a single task is concentrated in one place.
  • Advantages:
    • Code becomes more understandable and readable.
    • Simplifies localization and error correction.
    • The component becomes more reusable.

Ideally, one should aim for low coupling between components and high cohesion within each component.

What is low coupling and high cohesion? — PHP - sobes.tech