J'aime vraiment utiliser des méthodes statiques (en particulier pour les classes helpers). Mais comme les méthodes statiques ne sont pas stubbable, elles sont finalement une mauvaise pratique, n'est-ce pas? Je dois donc choisir entre la commodité d'utilisation des méthodes statiques et la testabilité. Y a-t-il un compromis?Pour statiques ou non statiques
Répondre
Cela dépend de ce que font les méthodes statiques.
Est-ce que c'est quelque chose qui doit vraiment être concevable? Comme l'accès aux données, les opérations longues, etc. ou est-ce que vous voulez dire des méthodes auxiliaires comme .ToSlug()?
Si c'est le cas précédent, je ferais des méthodes d'instance pour augmenter la testabilité/vitesse des tests.
Si c'est le dernier, je les laisserais statiques et juste vérifier leur exactitude.
Si vous pouvez garantir que la méthode statique renvoie toujours le même résultat pour une entrée donnée et la seule raison pour laquelle il existe des méthodes auxiliaires (conversion ou transformation d'entrée -> sortie sans effets secondaires), je ne vois aucun problème. Pour des coups de pied supplémentaires, vous pouvez en faire des méthodes d'extension (à partir de C# 3.0).
- 1. Blocs synchronisés pour les méthodes statiques et non statiques
- 2. Méthodes statiques ou non? Variables globales?
- 3. Sur les blocs d'initialisation statiques et non statiques en Java
- 4. PHP: Fonctions et objets statiques et non statiques
- 5. Propriétés de dépendance non statiques
- 6. Paramètres statiques non retenus pour les activités
- 7. fonctions statiques ou non statiques dans les classes générées par doctrine, symfony 1.4?
- 8. Remplacement des membres statiques et des "tableaux statiques statiques"
- 9. Refonte globale à locale. Devraient-ils être statiques ou non?
- 10. forcer un nouvel espace d'adressage pour une fonction (rendre les variables statiques non statiques)
- 11. variable globale dans C sont statiques ou non?
- 12. Accès aux méthodes DAL non statiques
- 13. variables privées non statiques en javascript
- 14. Indexeurs statiques?
- 15. Méthodes statiques (partagées dans VB.NET) ou normales
- 16. Instances d'objet MVC ou classes statiques?
- 17. ActionScript 3 - Méthodes statiques ou d'instance
- 18. Une question sur les membres statiques à l'intérieur des classes non statiques et garbage collection
- 19. Regex pour trouver des variables statiques (non finales)
- 20. Bibliothèques statiques ou quoi que ce soit
- 21. Visual Studio Solution: projets statiques ou partagés?
- 22. initialisation des variables statiques
- 23. Classes statiques et efficacité
- 24. différences de performance entre les champs primitifs finaux statiques et non statiques en Java
- 25. Accès aux valeurs enum non statiques à partir des méthodes statiques
- 26. Threading à partir d'une classe avec des méthodes statiques et non statiques
- 27. Est-ce mal d'avoir des méthodes statiques et non statiques dans la même classe?
- 28. membres statiques et consts
- 29. Bibliothèques statiques ou partagées pour un lecteur multimédia
- 30. Indices SQL Server statiques
D'accord. cette question est posée de nombreuses fois auparavant par le chemin. par exemple vous pouvez également vouloir lire: http://stackoverflow.com/questions/731763/should-c-methods-that-can-be-static-be-static http://stackoverflow.com/questions/1184701/static-vs-non-static-method – SirLenz0rlot