Adapter
Contexte : Convertir l’interface d’une classe en une interface attendue par les clients. Adapter permet à des classes de fonctionner ensemble alors qu’elles ne le pourraient pas autrement à cause d’interfaces incompatibles.
// Adapteepublic class Adaptee{ public string SpecificRequest() => "Specific response";}
// Target interfacepublic interface ITarget{ string Request();}
// Adapterpublic class Adapter : ITarget{ private readonly Adaptee _adaptee; public Adapter(Adaptee adaptee) => _adaptee = adaptee; public string Request() => _adaptee.SpecificRequest();}
// UsageAdaptee adaptee = new();ITarget target = new Adapter(adaptee);Console.WriteLine(target.Request());Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Fournisseurs de bases de données : Une application utilise une interface commune IDatabase. Des adaptateurs pour MySQL, PostgreSQL et SQL Server convertissent leurs API natives en IDatabase.
Exemple : Dans .NET, SqlDataAdapter remplit un DataSet – il adapte le DataReader SQL à un conteneur de données déconnecté. De même, ConfigurationManager adapte différentes sources de configuration.