Si un “Utilitaires” la classe est le mal, où dois-je mettre mon code générique?

En général, je vis par la règle que les variables Globales /fonctions sont mauvais et que chaque morceau de code doit vivre dans la classe à laquelle elle appartient.

C'est très facile, la règle à suivre, et je crois que je n'ai jamais couru dans un problème avec cette règle jusqu'à présent.

Aujourd'hui, cependant, j'ai besoin d'ajouter une fonction à mon assemblée plutôt qu'à une classe spécifique. C'est, presque toutes mes classes pourrait l'usage de cette fonction particulière.

Où dois-je mettre cette fonction (+1 surcharge)?

Si je l'ai mis dans un "Utilitaires" de la classe, je me sens sale. Si je le cloue à un semi-classe, et laisser les autres classes de l'appeler directement, je me sens pire.

De ce morceau de code, fondamentalement, les côtelettes d'une IList<PointF> dans une liste normalisée. Je ressens à cet instant que l'ajout d'une méthode d'extension sur IList<PointF> peut être le meilleur pari...

  • Je suis d'accord, les variables globales sont le mal. Ils semblent avoir leur propre système de pensée consacré à la détérioration de votre code.
  • L'état Global est problématique, mais les fonctions globales sont juste qu'une logique réutilisable, avec trop peu d'entrées/sorties pour être la peine d'encapsulation dans une classe. Je ne vois pas de problème avec accompagnateur ou l'Utilité des méthodes regroupées en bien nommé accompagnateur ou l'Utilitaire de classes statiques.
  • Je préfère à l'aide de "Tirer vers le Haut la Méthode" à la place de l'Utilité/classe d'assistance - Tirez la Méthode
InformationsquelleAutor John Gietzen | 2010-07-27