Bonjour,
Après le pattern Factory, je me pose des questions sur le pattern Decorateur
Déjà sur le principe : On utilise ce pattern quand on veut "greffer" à un objet des caractéristiques plus complexes ou modifier certaines de ses caractéristiques de base. En assemblant, plusieurs décorateurs, on peut obtenir un objet complexe. C'est bien cela ?
Ensuite sur son implémentation :
Soit une classe de base Enemy. Le but est de créer toutes sortes d'ennemies ayant des caractéristiques différentes (vol, feu, plus de PV, plus puissant, ...)
Le première idée est d'utiliser l'héritage classique + polymorphisme avec un truc du genre :
Voilà je me demandais si on pouvait améliorer cette méthode par le pattern Decorateur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 class Enemy { virtual void attaquer() = 0; }; class FlyEnemy : public Enemy { void attaquer() {cout << "j'attaque en volant" << endl} }; class PowerEnemy : public Enemy { void attaquer() {cout << "j'attaque avec toute ma puissance..." << endl} }; int main { std::vector<Enemy*> e; e.pushBack(new FlyEnemy()); e.pushBack(new PowerEnemy()); for(chaque ennemies du tableau) { e->attaquer(); } }
Merci pour vos conseils![]()
Partager