On parle de couplage étroit lorsqu'un groupe de classes est fortement dépendant les unes des autres.
Ce scénario se produit lorsqu'une classe assume trop de responsabilités, ou lorsqu'une préoccupation est répartie sur plusieurs classes au lieu d'avoir sa propre classe.
Le couplage lâche est obtenu grâce à une conception qui favorise la responsabilité unique et la séparation des préoccupations.
Une classe faiblement couplée peut être consommée et testée indépendamment d'autres classes (concrètes).
Les interfaces sont un outil puissant à utiliser pour le découplage. Les classes peuvent communiquer par le biais d'interfaces plutôt que d'autres classes concrètes, et n'importe quelle classe peut se trouver à l'autre bout de cette communication simplement en implémentant l'interface.
Exemple de couplage étroit :
class CustomerRepository
{
private readonly Database database;
public CustomerRepository(Database database)
{
this.database = database;
}
public void Add(string CustomerName)
{
database.AddRow("Customer", CustomerName);
}
}
class Database
{
public void AddRow(string Table, string Value)
{
}
}
Exemple de couplage lâche :
class CustomerRepository
{
private readonly IDatabase database;
public CustomerRepository(IDatabase database)
{
this.database = database;
}
public void Add(string CustomerName)
{
database.AddRow("Customer", CustomerName);
}
}
interface IDatabase
{
void AddRow(string Table, string Value);
}
class Database implements IDatabase
{
public void AddRow(string Table, string Value)
{
}
}
Un autre exemple aquí .
6 votes
Voir Qu'est-ce que le "couplage lâche" ? Veuillez fournir des exemples.