2010-06-06 8 views
1

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

9

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.

+1

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

2

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).

Questions connexes