C++ : Problème de design objet avec des templates

Voila j’ai un beau tempalte “Image” avec toutes les méthodes, spécialisées ou non, que je veux.

Je peux donc sans pb créer une image du type que je veux et ça marche très bien.

Le problème est que j’ai aussi des images sur le disque dur et je dois pouvoir les ouvrir. Il me faut donc un “open” au équivalent. Le pb est alors que le type de données contenues dans l’image (int, float ou double) est donné par une en-tête dans le fichier. Donc, avant de l’avoir ouvert, on ne sait pas si on va retourner une Image de double, de float ou d’int. Comment gérer cela proprement en prog objets?

Je dirais avec une usine (factory).
Mais je ne m’avancerai pas sur la validité de mes dires.

Une usine…bon ben il me reste à boser mes design patterns…
Merci.
ps : je débute plus ou moins en uml/design patterns.

moi aussi, rassures toi :smiley:

Si tu pouvais détailler un peu l’idée… :wink:

Je sais pas, tu fais un super type Image, contenant ImageInt, ImageDouble, ImageFloat. Et dans ce type, tu crée une méthode statique factory renvoyant un Image.

Puis dans cette factory, tu lis les premiers bytes de l’image pour voir ce que tu dois faire, et tu crée tes images Int/F/D à partir de ça.

Je pense que c’est le mieux.

D’autres idées? (non pas que je pense que celle ci soit mauvaise ;))