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