Je suis actuellement en train de refactoring (ajout de nouvelles fonctionnalités) à certaines de nos classes de frameworks. La situation est que nous avons une seule classe (semblable à un dieu) qui fait un tas de logique que nous aimerions diviser. La classe représente quelque chose comme une règle de validation pour les codes fiscaux. Ce que je vais faire est de le diviser en règles uniques, essentiellement une règle qui valide le prénom de la personne par rapport au code fiscal, une autre pour la date de naissance et ainsi de suite. Pour le programmeur à la fin, il ressemble presque à la même chose. Au lieu d'invoquer l'énorme constructeur de la règle FiscalCode, il va faire quelque chose comme FiscalCode.GetRules(...)
et passer les paramètres ici. Le GetRules(...)
va ensuite construire en interne les règles uniques et les renvoyer en tant que tableau. C'est parfaitement bien et correct pour nous.Refactorisation: Classe imbriquée ou classes séparées?
Voilà pour votre expérience. Maintenant, ma question est la suivante. La classe FiscalCode (qui est notre classe dieu puissante actuelle) a beaucoup de méthodes utilitaires qui seront nécessaires par plus de «classes de règles» que je vais créer. Ce que je sais, c'est que je vais toujours avoir besoin de la classe FiscalCode, pour faire la chose GetRules(...)
(cela doit rester constant d'une manière ou d'une autre pour les programmeurs, pas qu'ils aient à faire quelque chose de complètement nouveau).
J'ai deux options qui me viennent à l'esprit:
- Créer mes nouvelles classes de règles et accéder aux méthodes utilitaires statiques publics de la classe FiscalCode
- Créer mes nouvelles classes de règles que les classes imbriquées internes du Classe FiscalCode st J'ai déjà accès aux méthodes utilitaires (et donc pas besoin d'exposer mes méthodes utilitaires)
J'ai déjà un favori, mais j'aimerais d'abord entendre l'opinion de certains d'entre vous.
Thx
Eh bien, le fait est que ce sont des méthodes utilitaires, mais elles seront simplement utilisées dans le groupe de règles FiscalCode. Donc les exposer publiquement n'est pas vraiment correct, bien que cela ne soit pas un problème. Avec les classes imbriquées, je pouvais directement accéder aux méthodes statiques privées de la règle FiscalCode. – Juri