Bonjour à tous, j'ai un exercie de TD qui tourne autour du Pattern Decorateur et il y a certaines chose que je ne comprend pas très bien.
En utilisant le modèle de conception Décorateur, nous voulons représenter des soldats qui disposent d’une collection d’armes. Il y a deux catégories de soldats : les fantassins et les cavaliers. Les armements sont représentés par des boucliers et des épées. Un soldat peut asséner un coup qui dépend de son armement et de sa catégorie (Fantassin, Cavalier). Il peut également parer un coup, sa protection dépendant de son armement et de sa catégorie. Il peut donc exister des soldats cavaliers avec des boucliers, des fantassins avec épée + boucliers, etc.….
Sachant que les épées participent à la méthode assener et à la méthode parer, implémentez une solution simple permettant de suivre l’enchaînement des méthodes parer et asséner.
Je ne comprends pas ce qu'on veut dire par " une solution simple permettant de suivre l'enchaînement des méthodes parer et asséner ".
Donner ci-dessous le code que j'ai fais en espérant qu'il soit juste.
Merci d'avance
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 public class SoldatDecore implements Soldat{ private Soldat s_deco; public SoldatDecore(Soldat s) { s_deco = s; } public void parer(int i) { s_deco.parer(i); } public int assener() { return s_deco.assener(); } } public interface Soldat { public void parer(int coup); public int assener(); } public class Cavalier implements Soldat{ public int vie; public int coup; public Cavalier() { vie = 80; coup = 5; } public void parer(int coup) { vie = 0; } public int assener() { return coup; } } public class Fantassin { public int vie; public int coup; public Fantassin() { vie = 100; coup = 10; } public void parer(int coup_recu) { vie = 0; } public int assener() { return coup; } } public class SoldatAvecBouclier { } public class SoldatAvecEpee extends SoldatDecore{ }
Partager