Bonjour,
Admettons qu'on ait une classe A qui a une sémantique de valeur (value semantic). Pas de destructeur virtuel, pas fait pour être dérivé.
Un certain nombre d’opérations doivent agir sur les instances de A et nécessitent d'accéder aux membres privés.
On va naturellement penser à ajouter des méthodes à cette classe:
Problème: Parce que A est vraiment utile (penser au type int, même si j’exagère rassurez-vous) et qu'il y a toujours plus de méthodes à ajouter (car potentiellement intéressantes), on se retrouve avec une classe dont l'interface publique est disproportionnée.
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 struct A { // exemple fictif //.. ctors, assignment ops etc int method1(); // série de méthodes publiques int method2(); int method3(); //.. private: int i, j; }; // utilisation A a; a.method1(); a.method2();
Solution: Tailler dans les méthodes et passer par des fonctions libres. Idéalement ces fonctions sont chargées à la demande par l'utilisateur (des fichiers de header distincts).
Problème: Quid de l’accès aux membres privés?
Question: Quels design, technique, idiome adopteriez-vous afin de remédier à ce problème? Si tant est que le problème fut le bon..
Partager