Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM > Design Patterns
Design Patterns Forum d'entraide sur l'utilisation des Design Patterns (GRASP, GOF, etc.) et la recherche de solution à des problèmes récurrents. Avant de poster : Les tutoriels sur les DP. Privilégiez le forum Architecture pour vos questions sur les patterns architecturaux (PAC, MVC, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/02/2012, 10h34   #1
zo1odMSQr5Fy
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut Du mal a cerner la conception en cas d'ajout de plusieurs décorateurs

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
  Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2012, 10h10   #2
cylere
Membre du Club
 
Homme Claude RICHARD
Chef de projet NTIC
Inscription : novembre 2011
Messages : 50
Détails du profil
Informations personnelles :
Nom : Homme Claude RICHARD
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2011
Messages : 50
Points : 41
Points : 41
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.
cylere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2012, 14h08   #3
Luckyluke34
Membre éprouvé
 
Inscription : janvier 2011
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 155
Points : 407
Points : 407
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...
Luckyluke34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Mettre Résolu
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h45.


 
 
 
 
Partenaires

Hébergement Web