C'est la première fois que je me pointe ici, ça me semble très complet mais je n'ai pas trouvé la réponse à mon petit problème, pourtant basique... Je me lance donc :
J'ai une classe abstraite qui me sert à définir quelques méthodes virtuelles pures comme l'opération suivante (où "Data" désigne le type de mes données de sortie)
1 2 3
| public ref class AbstractFileLoader abstract {
public virtual Data^ load(const System::String^ monfichier) abstract;
}; |
De cette classe FileLoader, je souhaite faire hériter plusieurs classes différentes, une par extension : je vais donc avoir par exemple
1 2 3
| public ref class ABCLoader : public AbstractFileLoader {
public virtual Data^ load(const System::String^ monfichier) override;
}; |
Jusqu'ici tout va bien. Je souhaite compliquer la chose en appliquant à tous les héritiers de AbstractFileLoader le pattern Singleton, histoire de ne créer qu'un unique chargeur de fichier par type de fichier...
Il me faut donc déclarer pour chaque classe héritière un membre statique ABCLoader^ _ME, et introduire la méthode habituelle
public static ABCLoader^ ABCLoader::getInstance();
qui va me permettre d'éventuellement créer et essentiellement récupérer cette instance unique _ME de la classe ABCLoader.
Pour utiliser l'intérêt de la notion d'héritage, il pourrait me venir à l'idée d'imposer la création de cette méthode getInstance() au niveau de la classe mère, à l'aide d'une méthode virtuelle pure, à l'instar de la méthode load().
Seulement là ça coince, puisque getInstance() est statique (en effet, elle est responsable de l'unique instanciation de la classe concernée)
Et maintenant, mes petites questions à propos de ce problème :
- quel est l'intérêt d'empêcher une méthode statique d'être déclarée virtuelle ? Si démonstration il y a, j'aimerais tant qu'à faire qu'elle soit appliquée à mon exemple pour que je puisse bien en voir les enjeux, SVP... 
- ce que je tente de faire est-il donc impossible ?
- est-ce que j'aurais un défaut de conception qq part ? 
- à part ça, ça va bien ? Comme je le disais, je suis nouveau ici, et rassurez-vous je n'ai pas l'intention de poster des romans régulièrement... 
Mais bon, je ne voudrais pas non plus passer pour quelqu'un de grossier, donc je vous salue et vous souhaite un excellent week-end tout en vous remerciant par avance de votre participation !
Partager