# Coupling

How much one piece of code depends on another; loose coupling is the goal.

## What is **Coupling**?

**Coupling** is how much one piece of code depends on the details of another. Loose coupling is the goal: you can change one class without breaking the others.

```csharp
// Tightly coupled: OrderService can only ever use SmtpEmailer
private readonly SmtpEmailer emailer = new();

// Loosely coupled: any IEmailer will do
private readonly IEmailer emailer;
```

Level: Journeyman · [More OOP terms at this level](https://www.ask-codey.com/glossary/subjects/oop/journeyman)

Updated: September 27, 2026

Source: https://www.ask-codey.com/glossary/coupling
