Bonsoir,

J'avais lu il y a quelques temps sur Dr Dobbs un article assez interressant sur les classes options. Ce qui m'interesse est l'un des premiers exemples :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
File f = OpenFile( "foo.txt" )
   .readonly()
   .createIfNotExist()
   .appendWhenWriting()
   .blockSize( 1024 )
   .unbuffered()
   .exclusiveAccess();
J'ai trouvé l'idée de **cacher** la la classe d'options très... hum ... esthétique.
Par ailleurs, j'ai voulu essayer de creer un petites classe de generalisation de GUI( prenons par exemple qt et wxWidget). Pour permettre à chaque GUI d'obtenir les information qui lui vont bien j'ai pensé aux classe d'options :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
class GenericGui
{
 
};
 
class QtImpl : public GenericGui
{
public:
     class Option
     {
 
     };
};
 
QtImpl::Option useQtGui();
 
class wxWidgetImpl : public GenricGui
{
public:
     class Option
     {
 
     };
};
 
wxWidgetImpl::Option usewxWidgetGui();
L'idée est de pouvoir les utiliser comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GenericGui* gui(useQtGui().option1(true).option2(2.5));
Je vois en gros deux solution mais la premiere me parait crade et la seoncde me gène un peu :
  • ou je crée un operateur de conversion dans mes classes options vers GenericGui*
  • ou je crée une fonction membre(ou un operateur) qui renvoie un GenericGui*


En gros j'aimerais connaitre votre avis.

Merci d'avance