Hello,

Je travaille sur un projet avec un historique assez lourd.
Je me retrouve avec des classes dotées d'une vingtaine de membres et d'une quarantaine de méthodes. Certaines d'entre elles ont 6 ou 8 arguments.
Pas mal d'entre eux font référence à des données statiques, qui ne bougent plus après leur initialisation, mais qui sont utilisées un peu partout.
Je me trimballe donc souvent des références partagées par moult classes utilisatrices de ces données.

Pour l'instant, j'ai donc des fonctions avec un nombre déraisonnable d'arguments. Une solution est de passer un pointeur vers un objet de la classe appelante, puis d'utiliser des accesseurs. Ou, autre solution, passer un pointeur this aux constructeurs des objets utilisés, qui lui initialisera ses propres références à l'aide de celles déjà présentes dans l'objet appelant.

Cela va me faire une tripotée de références circulaires, heureusement gérables grâce aux déclarations anticipées, mais cela n'est néanmoins pas très propre. Je ne suis pas encore en mesure de revoir l'ensemble de l'archi ; de par la dimension du projet existant, et de la qualité du code présent, je crois que ça va le prendre encore plusieurs mois pour être en mesure d'éventuellement renverser la table.

Auriez-vous des suggestion à me faire pour éviter soit d'avoir de nombreux arguments, soit d'avoir un intercouplage ?

Merci.