« Patrons de conception/Objet composite » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
|||
Ligne 283 :
dir3
Produisant un résultat similaire à l'exemple en php, une variante en C#.
Ligne 289 :
<source lang=csharp>
abstract class Composant {
public int Level =
}
}▼
public override void Add(Composant composant) { throw new NotImplementedException(); }
}
class Composite : Composant {
}
public override void Draw() {
base.Draw(); Console.WriteLine("Composite : {0}", Nom);
▲ class Feuille : Composant {
▲ public override void Draw() {
base.Draw();▼
▲ Console.WriteLine("Feuille : {0}", Nom);
}
}
}
▲ public Composant[] Composants;
▲ Composants = Composants.Concat(new Composant[] { composant}).ToArray();
}
}
</source>
Et le résultat est le suivant:
▲ static void Main(string[] args) {
▲ Nom = "cadre",
▲ Composants = new Composant[] {
▲ new Feuille() { Nom="homme" },
▲ new Feuille() { Nom="femme" }}}}}}};
cadre.Draw();▼
<source>
▲ Console.ReadLine();
Composite : cadre
Feuille : soleil
Composite : mer
▲ Feuille : homme
</source>
|