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 :
J'ai trouvé l'idée de **cacher** la la classe d'options très... hum ... esthétique.
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();
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 :
L'idée est de pouvoir les utiliser comme ceci :
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();
Je vois en gros deux solution mais la premiere me parait crade et la seoncde me gène un peu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part GenericGui* gui(useQtGui().option1(true).option2(2.5));
- 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
Partager