« Patrons de conception/Adaptateur » : différence entre les versions

Contenu supprimé Contenu ajouté
VolkovBot (discussion | contributions)
Ligne 31 :
== Implémentation ==
 
== Exemple deen codeC++ ==
Un adaptateur pour faire un carré aux coins ronds. Le code est en c++.
 
Ligne 69 :
};
 
</source>
 
== Exemple en C# ==
 
<source lang="csharp">
/// <summary> </summary>
interface IDeveloppeur {
string EcrireCode();
}
 
/// <summary> </summary>
class DeveloppeurHaskell : IDeveloppeur {
public string EcrireCode() { return "main = putStrLn \"Algorithme codé\""; }
}
 
/// <summary> </summary>
class Architecte {
public string EcrireAlgorithme() { return "Algorithme"; }
}
 
/// <summary> </summary>
class AdaptateurArchitecte : IDeveloppeur {
Architecte _architecte;
public AdaptateurArchitecte(Architecte archi) {
_architecte = archi;
}
public string EcrireCode() {
return string.Format("main = putStrLn \"{0} codé\"", _architecte.EcrireAlgorithme());
}
}
 
//___________________________________________________________________
// Implémentation
 
class Program {
static void Main() {
IDeveloppeur developpeur1 = new DeveloppeurHaskell();
Console.WriteLine(developpeur1.EcrireCode());
 
var architecte = new Architecte();
IDeveloppeur developpeur2 = new AdaptateurArchitecte(architecte);
Console.WriteLine(developpeur2.EcrireCode());
 
}
}
</source>