-
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 ?
-
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é?
-
Merci de ton éclairage Tristan, je vais regarder cela plus en détails.