39 votes

Nommer une classe de méthode d'extension

Je poste ceci par pure curiosité pour savoir comment les autres équipes ont nommé leurs classes qui contiennent des méthodes d'extension .NET 3.5.

Extensions.cs ExtensionMethods.cs Helpers.cs

comment nommez-vous les vôtres et pourquoi, quelle est l'intention du nom que vous avez choisi et pourquoi avez-vous choisi une méthode d'extension plutôt qu'une autre ?

Non pas que ce soit un gros problème, vous pourriez me dire "On s'en fout, choisissez juste un trou du cul" mais je suis juste curieux... pour moi le nommage est une partie importante de l'OOP.

38voto

Robban Points 2984

Nous nommons généralement les nôtres d'après la classe qu'ils étendent, c'est-à-dire StringExtensions.cs, ListExtensions.cs, etc.

16voto

Bryan Watts Points 22810

Je ne suis pas un fan de faire Nom du type Extensions . Elle omet pourquoi vous étendez le type. Je comprends qu'il est uniforme et qu'il nécessite donc peu de réflexion, mais il fournit également peu d'informations.

Il fabrique un godet pour chaque extension de ce type. Si vous avez deux fonctionnalités qui n'ont aucun rapport entre elles, doivent-elles être organisées ensemble simplement parce qu'elles étendent le même type ? Vous vous retrouvez avec des classes statiques volumineuses et incohérentes qui changent à chaque nouvelle fonctionnalité. SRP et OCP disparaissent.

J'aime donner à mes classes d'extension le nom de la fonctionnalité qu'elles permettent d'activer. Par exemple, j'ai des méthodes d'extension FormatCurrent y FormatInvariant sur string qui aident avec le code globalisé. Ils sont déclarés sur la page GlobalizedFormatting classe statique. Peu importe combien d'autres extensions sont ajoutées ou retirées de string cette classe n'a pas besoin d'être touchée car elle est organisée par fonctionnalité .

Je fais exception pour les classes qui créent une API fonctionnelle, telles que Enumerable y Queryable . Les nommer d'après l'interface principale de la fonction semble propre.

Edit : Ces classes ne sont généralement pas utiles dans Intellisense et peuvent servir d'encombrement. J'évite cela en dire à l'éditeur de ne pas montrer le type :

[EditorBrowsable(EditorBrowsableState.Never)]
public static class GlobalizedFormatting

11voto

JaredPar Points 333733

Je nomme mon fichier de méthode d'extension dans le format suivant

{ClassNameBeingExtended}Extensions.cs

11voto

l3dx Points 1454

Créez un espace de nom pour toutes vos méthodes d'extension. Placez les méthodes d'extension dans des classes liées à la classe/au type que vous étendez. Par exemple : MonProjet.Extensions.StringExtensions

6voto

JP Alioto Points 33482

Nous utilisons ...

Company.Common.Extensions.<Class or Interface that is extended>Extensions

Par exemple ...

Company.Common.Extensions.ListExtensions

dans le fichier ListExtensions.cs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X