Bonjour,

Une petite question de conception. J'ai une classe DocumentManager qui peut être paramétrée par une classe de Stockage :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
template <class DocumentHandler, template<class> StoragePolicy>
class DocumentManager : public StoragePolicy<DocumentHandler> {
//...
};
Quelle que soit la classe de stockage, elle aura besoin d'accéder à une donnée membre (current_document) et deux méthodes.

Ma question est vaut-il mieux créer une classe supplémentaire dans laquelle je vais mettre ces trois membres (2 fonctions + donnée) et en faire hériter chacune de mes classes de stockage, ou bien les inclure dans la classe DocumentManager et utiliser le CRTP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
template <class Derived>
class DefaultStorage {
//...
};
 
template <class DocumentHandler, template <class> StoragePolicy>
class DocumentManager : public StoragePolicy<DocumentManager>
{
//...
};
Merci d'avance.