|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité(e)
![]() Messages : n/a ![]() |
Bonjour,
Un de mes projets perso consiste à developper un jeu ( Je suis en charge de la conception du serveur ). Il est developpé en java. Il y a bien une connexion entre le serveur et le client. Mais maintenant je dois allez plus profondément en programmant les objets du jeu. Alors j'ai lu les tutoriel de smeric et de pcaboche. Mais j'ai du mal à cerner comment appliquer le Design Pattern Decorateur en java pour mon cas. En effet prenons le cas d'une arme. Je souhaiterais qu'elle puisse avoir plusieurs décorateur. Par exemple nous avons un objet Epée Longue . le joueur l'aiguise donc on lui applique le décorateur Aiguisée. Puis un enchantement fait qu'on lui ajoute le décorateur Enflammé. Donc l'Epée Longue devient une Epée Longue aiguisée enflammée. Mais je ne sais pas si ce DP prend en charge ce genre de cas car on doit tenir compte des deux bonus des décorateurs ajoutés. Au départ je pensais juste faire une ArrayList dans ma classe Epée Longue et puis basta. Est-ce possible avec Decorateur ? Merci ! Cordialement, TheBear |
00
|
|
|
#2 |
|
Membre du Club
![]() Claude RICHARDChef de projet NTIC Inscription : novembre 2011 Messages : 50 ![]() |
Une épée ayant un nombre fini d'états (qui ne donnent pas lieu à la création d'une classe),
utiliser enum est plus approprié, cf. : http://marxsoftware.blogspot.com/201...d-enumset.html En plus on peut ajouter un nouvel état facilement. On peut alors utiliser la Pattern Observer/Observable pour gérer le traitements des différents états. Sinon les choix se gèrent avec l'algèbre de Boole. |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : janvier 2011 Messages : 155 ![]() |
Le pattern Decorator permet tout à fait de gérer ce genre de choses.
Cf http://en.wikipedia.org/wiki/Decorator_pattern le deuxième exemple (décorateurs de café qui ajoutent des ingrédients et permettent de calculer le prix final du café). La clé ici est que le décorateur dérive lui-même de la classe de base à décorer (pour toi, Epée) et peut donc être décoré comme un objet de base par un autre décorateur, qui lui-même... et ainsi de suite. Maintenant si tu veux gérer une gamme extensible de N enchantements, il va falloir un peu génériciser tout ça. Ca peut vite être fastidieux de devoir écrire une classe différente et donc recompiler ton application à chaque fois que tu ajoutes un nouvel enchantement, surtout s'ils sont tous dans la même veine et permettent juste de rajouter un bonus à l'épée... |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com