J'ai demandé hier à un collègue si une fonction avait trop de paramètres s'il serait préférable de créer une classe avec des propriétés à la place. Y a-t-il des lignes directrices que je peux suivre?Directives de conception de classe/fonction
Répondre
Je pense que cela dépend de la langue que vous utilisez et du nombre de paramètres en question, et certains d'entre eux peuvent être laissés de côté lors de l'appel de la fonction. VB possède des paramètres facultatifs et C# 3 + permet l'instanciation à l'aide de paramètres.
La nouvelle classe aura-t-elle d'autres usages que l'exécution de cette fonction, ou l'état de cette classe sera-t-il pertinent plus tard dans le code?
Lorsque le nombre de paramètres dépasse Je commence généralement à penser à la refactorisation de la méthode. Il n'y a pas de nombre absolu, mais c'est ma règle générale. Il peut être judicieux de regrouper les données dans une classe de données, ou parfois cela signifie que je devrais déplacer la méthode pour qu'elle soit plus proche des données.
Tout dépend du contexte.
Par exemple.
S'il ne s'agit pas d'une opération de base de données, nous pouvons procéder selon la conception du système. Brisez le module et essayez de créer des sous-modules.
S'il s'agit d'un système de base de données, je préfère toujours écrire une classe de beans séparée pour la classe Fields et DAO pour les opérations.
- 1. Directives de conception pour l'analyseur et lexer?
- 2. Désactiver ou masquer les directives de conception des contrôles?
- 3. Interrogation sur les directives de conception pour le développement d'applications
- 4. Directives de codage XAML
- 5. Directives de pragma de Qt
- 6. directives de développement de protocole
- 7. Existe-t-il des directives de conception pour les bases de données documentaires?
- 8. NHAML Directives
- 9. Directives de préprocesseur de l'objectif-c
- 10. Suivez-vous des directives (java) dans l'emballage?
- 11. Directives pour la création interactive? Visualisations
- 12. Besoin de directives appropriées pour SCJP
- 13. Directives pour l'utilisation de IDictionary (.NET)
- 14. Directives de pré-processeur en C#
- 15. Utilisation de directives dans les nouveaux fichiers
- 16. Directives de comptage des références COM interop
- 17. espaces de noms et Utilisation des directives
- 18. C# ASP.NET Codes de refactoring | Comment/Directives
- 19. Android - directives JNI
- 20. Script # directives du préprocesseur?
- 21. directives d'exécution dans config
- 22. winforms directives d'application
- 23. directives Apache: Action concassées
- 24. Directives du préprocesseur VB.NET
- 25. nginx - comment obtenir des directives de réécriture à exécuter avant les directives d'index?
- 26. directives sur l'environnement d'application
- 27. Directives du préprocesseur
- 28. Suggestions pour les directives du projet Android
- 29. Bon outil de directives de codage pour C++?
- 30. Y compris beaucoup de directives de réécriture dans lighttpd