Bonjour,
J'ai un souci de conception qui me d�range de plus en plus et j'aimerai votre avis.
Je dois maintenir un programme de taille moyenne (140 fichiers, 60 classes).
Sch�matiquement, une classe "core" manage une tripot�e de classes sp�cialis�es A, B , C , D ... environ 40 classes, chaque classe sp�cialis�e a environ 3 � 5 assesseurs.
chaque classe sp�cialis�e est d�finie ainsi dans core :
Si je me focalise sur les get/set, j'ai donc dans core environ 120 � 200 set/get. et core ressemble � cela:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 classe core { public: ... private: class* A a; class* B b; class* C c; ... }
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 classe core { public: ... setClass_a1() getClass_a1() setClass_a2() getClass_a2() setClass_a3() getClass_a3() setClass_b1() getClass_b1() setClass_b2() getClass_b2() setClass_b3() getClass_b3() setClass_b4() getClass_b4() ... private: class* A a; class* B b; }
car ma classe core est dirig�e par une autre classe "manager" qui g�re un moteur de script et qui a besoin d'acc�der aux get/set des classes sp�cialis�es. Comme il n'y a pas de lien entre "manager" et les classes sp�cialis�es, les concepteurs ont tout fait pass� par "core"
Bref, ca commence � m'emb�ter s�rieusement car ma classe "core" devient au final illisible.
ensuite c'est le probl�me m�me des set/get
j'ai donc pour une variable dans une classe sp�cialis�e
- un set:get pour cette variable [dans le fichier de d�finition de la classe sp�cialis�e en question]
- un set/get dans la classe core qui ne sert que de relai. [dans le fichier de d�finition de la classe core]
- un set/get dans ma classe "manager" pour modifier effectivement la variable de la classe sp�cialis�e. [dans le fichier de d�finition de la classe "manager"]
Je souhaiterai changer tout cela.
J'ai mes id�es mais comme toute implication n�cessite de changer �norm�ment de choses, j'aimerai votre avis avant de tout changer pour �viter de tout rechanger � nouveau.
D�j� merci pour votre aide !
Partager