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 06/08/2012, 13h00   #1
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
Par défaut Recherche d'un pattern

Bonjour,

d'un côté, j'ai une classe a laquelle je passe un nom de fichier dont je ne connais pas le type
et doit pouvoir retourner des informations sur ce fichier.

d'un autre côté, j'ai différentes classes qui prennent un nom de fichier
et qui me retournent des informations sur un type de fichier donné.

J'ai pensé au patron Factory, mais je ne sais pas si c'est le patron le mieux adapter ?
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2012, 22h35   #2
tristan_m
Membre du Club
 
Inscription : août 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 61
Points : 66
Points : 66
Bonjour,

L'information cruciale est vraisemblablement la connaissance du type de fichier, en particulier le moment où la classe "d'un côté" connait le type de fichier.

Personnellement je vois trois possibilités.
NB : j'appellerai la classe "d'un côté" Generic et les classes "d'un autre côté" Specific
  • Si le type de fichier est connu dès la création de l'objet Generic, un simple héritage suffit. La classe Generic est une classe mère (éventuellement classe abstraite ou interface) des classes Specific.
  • Si la classe Generic récupère le type (par détection ou grâce à une entité extérieure), le design pattern 'Strategy' sera suffisant. Les classes Specific implémentent une classe 'FileInfoRetriever', par exemple, dont la classe Generic serait responsable de la création et possèderait une instance
  • Si la classe Generic n'a jamais l'information concernant le type de fichier, le design pattern 'Strategy' est également utilisable à condition que l'objet 'FileInfoRetriever' soit créé à l'extérieur de la classe Generic, puis passé à la classe Generic.
    Sinon, il faut effectivement utiliser le design pattern 'Factory'. La classe Generic possède toujours une instance de 'FileInfoRetriever', mais Generic sera dérivée en autant de classe que de type de fichier. Chacune des ces classes dérivées sera responsable de créer cet objet 'FileInfoRetriever' en créant un objet de type Specific (qui implémente 'FileInfoRetriever').

A moins qu'il y ait une contrainte à côté de laquelle je sois passé?
tristan_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2012, 13h44   #3
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
Merci de ton éclairage Tristan, je vais regarder cela plus en détails.
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h23.


 
 
 
 
Partenaires

Hébergement Web