2010-09-16 3 views
7

Je me demande si c'est une bonne conception si une méthode d'extension utilise une autre dans la même classe d'extension.méthode d'extension appeler un autre dans la même classe d'extension - bonne conception?

public class ClassExtensions 
{ 
    public static bool IsNotNull<T>(this T source) 
     where T : class 
    { 
     return !source.IsNull(); 
    } 

    public static bool IsNull<T>(this T source) 
     where T : class 
    { 
     return source == null; 
    } 
} 

EDIT Merci pour les réponses. Et désolé pour le mauvais échantillon.

+0

Vous n'introduisez aucune nouvelle dépendance externe ou quoi que ce soit. Si vous supprimez une méthode avec des dépendances, elle ne sera pas générée. Pas de réels inconvénients à cela. –

Répondre

6

C'est bon. Votre exemple est un peu trivial, bien sûr, mais considérez d'autres situations où une méthode pourrait fournir des surcharges (en utilisant string.Substring comme exemple ... la méthode feinte n'existe pas déjà). L'appel de surcharges vous permet évidemment de garder votre logique centralisée autant que possible sans vous répéter. C'est vrai dans les méthodes d'instance, c'est vrai dans les méthodes statiques (y compris, par extension, les méthodes d'extension).

2

À mon humble avis, habituellement, car il réduit la quantité de code que vous avez à écrire et donc la possibilité de faire des erreurs.

Dans l'exemple ci-dessus, cependant, je pense que c'est exagéré en raison de la simplicité de la méthode.

+0

Je suis d'accord. Pourrait aussi bien appeler! IsNull() pour vérifier IsNotNull(). – Rohrbs

0

Bien sûr, c'est un bon design, et peut être appelé DRY.

Ceci, cependant, est un exemple très trivial.

1

Oui, c'est une bonne pratique. Considérez la classe comme une sorte d'espace de noms et de groupe associés extensions ensemble.

Questions connexes