44 votes

Apprendre à utiliser les interfaces efficacement

J'ai été le développement de logiciels en C# pour un certain temps, mais l'un des principaux domaines que je ne l'utilise pas de façon suffisamment efficace est d'interfaces. En fait, je suis souvent confus sur les différentes façons dont ils peuvent être utilisés et quand les utiliser. Par exemple, je sais méthodes peuvent retourner des interfaces, peut les prendre comme paramètres, peuvent être dérivées à partir d'eux, etc. Ce concept est d'une certaine faiblesse pour moi

Je me demandais si quelqu'un savait de source / tutoriel clairement et explique en détail les interfaces en profondeur et les différentes façons dont ils peuvent être utilisés?

58voto

dknaack Points 26873

Description

Les Interfaces en C # fournir un moyen d'atteindre un polymorphisme d'exécution. L'utilisation d'interfaces que nous pouvons appeler des fonctions à partir de différentes classes, par la même référence de l'Interface, tandis que l'utilisation de fonctions virtuelles, nous pouvons invoquer les fonctions de différentes classes dans la même hiérarchie d'héritage par le biais de la même référence.

Par exemple:

public class FileLog : ILog
{
    public void Log(string text)
    {
        // write text to a file
    }
}

public class DatabaseLog : ILog
{
    public void Log(string text)
    {
        // write text to the database
    }
}

public interface ILog
{
    void Log(string text);
}

public class SomeOtherClass
{
    private ILog _logger;

    public SomeOtherClass(ILog logger)
    {
        // I don't know if logger is the FileLog or DatabaseLog
        // but I don't need to know either as long as its implementing ILog
        this._logger = logger;
        logger.Log("Hello World!");
    }    
}

Vous avez demandé tutoriels.

Tutoriels

5voto

Tudor Points 39539

Les Interfaces sont généralement utilisés pour forcer la mise en œuvre de classes d'obéir à un certain contrat (ce qui signifie d'avoir certaines méthodes). Parfois, ils sont juste utilisés comme marqueurs c'est à dire ils n'ont pas les méthodes déclarées, mais d'activer un générateur de code pour générer un code spécial pour la mise en œuvre de la classe.

Cela dit, les interfaces ne sont pas vraiment un "outil" dans leur propre droit, de sorte qu'ils ne servent pas un particulier but fonctionnel, mais elles peuvent grandement simplifier la conception de votre demande et sont largement utilisés dans les modèles de conception OO. Une ressource de base est de ce tutoriel: http://www.csharp-station.com/Tutorial/CSharp/Lesson13

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