Question

Pourquoi utiliser l'interface?

Est-il uniquement de normalisation?

Était-ce utile?

La solution

Buts de Interfaces

  • créer des logiciels à couplage lâche
  • par contrat (un implémenteur doit fournir toute l'interface)
  • permettre un logiciel connectable
  • permettent différents objets d'interagir facilement
  • détails d'implémentation cacher des classes de l'autre
  • faciliter la réutilisation des logiciels

Analogie 1 : Tout comme la navette spatiale américaine, vaisseau russe Soyouz et Shenzhou chinois 5 peuvent tous quai à la Station spatiale internationale, parce qu'ils mettent en œuvre la même interface d'accueil. (Ceci est juste un exemple - je ne sais pas s'il est vrai dans la vraie vie cependant laisser notre incrédulité à cause d'un exemple)

Analogie 2 : Comme vous pouvez brancher plusieurs écrans d'ordinateur dans votre ordinateur à la maison. Vous pouvez brancher un téléviseur mural taille en elle, un vieux tube cathodique (le type épais), un 20" écran plat, ou une machine braille pour les aveugles de « voir » par le toucher. Il y a compatibilité entre ces différents appareils / différents et votre ordinateur parce qu'ils sont tous d'accord sur les normes d'interface.

Détails des interfaces C # - Avec C # interfaces / POO que vous faites le même genre de chose, mais dans le monde invisible / virtuel.

Vous avez raison à propos de normalisation , mais aussi flexibilité , évolutivité , sous la Extensibilité , maintenabilité , réutilisabilité , testabilité et puissance .

(Plus vous utilisez les interfaces logiciels seront compris plus ces « mots à la mode ». Et toujours envisager des interfaces dans le monde réel parce qu'ils nous ont fait aussi bien.)

Autres conseils

Une interface est utilisée pour décrire une chose mise en œuvre peut faire. Vous avez donc la possibilité de traiter plusieurs objets mettant en œuvre la même interface comme un type de cette interface.

Par exemple:

public interface IMyInterface{
    public void DoFirst();
    public int DoSecond();
}


public class A : IMyInterface{
   //class has to implement DoFirst and DoSecond
   public void DoFirst(){
     Console.WriteLine("Blubb1");  
   }

   public int DoSecond(){
     Console.WriteLine("Blubb2");
     return 2;  
   }
}

public class B : IMyInterface{
   //class has to implement DoFirst and DoSecond
   public void DoFirst(){
     Console.WriteLine("Blibb1");  
   }

   public int DoSecond(){
     Console.WriteLine("Blibb2");  
     return 4;
   }
}

Les classes implémentent l'interface de plusieurs façons. Mais vous pouvez les utiliser comme IMyInterface. Par exemple:

public static void DoMethodsInInterface(IMyInterface inter){
    inter.DoFirst();
    inter.DoSecond();
}


public static void main(){

   DoMethodsInInterface(new A());
   DoMethodsInInterface(new B());
   //Or use it in a List
   List<IMyInterface> interlist = new List<IMyInterface>();
   interlist.Add(new A());
   interlist.Add(new B());
   foreach(IMyInterface inter in interlist){
      inter.DoFirst();
   }

}

J'espère que cela un peu clair pourquoi les interfaces sont utiles.

Il est pour l'interface :), de sorte que vous pouvez l'interface entre des choses, il est utile lorsque vous avez

  • plusieurs implémentations de même substance
  • lorsque vous appliquez une interface à plusieurs classes différentes parce que vous avez besoin d'une sorte de convention que ces classes sont goonna être en mesure de faire des choses ou ont une fonctionnalité

Voici la vue de haut niveau ...

Interfaces jouent un grand rôle dans le concept de Informations Hiding.

Ils aident essentiellement vous masquez le détails d'implémentation de votre classe afin qu'une classe d'appel ne dispose pas de dépendance à cette mise en œuvre. Par conséquent, en utilisant des interfaces, vous pouvez modifier la mise en œuvre sans changer la classe d'appel. Tout cela à tour de rôle limite la complexité de votre code et de le rendre plus facile à maintenir à long terme.

Quand j'ai commencé à comprendre les interfaces qu'ils me l'a expliqué comme un « contrat qui fournit une description de votre classe. » Je ne sais pas si cela vous aidera mais si vous pensez d'une interface pour une voiture, on pourrait dire que lecteurs , pauses et tourne . Donc, tant que ça me fait du point A au point B, je n'ai pas vraiment savoir comment ces fonctions sont mises en œuvre.

Remoting ...

Il y a un client et un serveur impliqué ici. Permet de dire qu'ils sont séparés physiquement par Internet. Le client appelle une méthode dont l'exécution réelle qui se passe sur le serveur. Du point de vue du client que le client ne sait rien sur l'objet dans le serveur qui exécute l'exécution. Cependant, il sait quelle méthode appeler. Parce que pendant la construction du programme client, nous ne sommes exposés à une interface (ou contrat). Nous ne sommes pas exposés à l'ensemble de l'objet qui vit en fait sur le serveur. Essayez de faire des applications de démonstration en .net Remoting, et vous allez comprendre le reste. Bonne programmation.

  

Pourquoi utiliser des interfaces?

Certaines langues implémenter la méthode polymorphique appels à l'aide vtables et jeter la plupart des informations de type qui rend difficile pas pour définir les interfaces.

Alors quelque temps, nous utilisons simplement des interfaces parce que la conception du langage exige.

En commençant par une interface, vous pouvez mettre en œuvre un , permettant ainsi le chargement paresseux ou d'effectuer certaines vérifications lors de l'appel des méthodes d'une mise en œuvre concrète.

Interface sépare le type de données à partir de la logique de mise en œuvre.

Interface fournir modal prototype qui contient juste déclaration de la fonctionnalité d'un comportement spécifique.

et si tu veux mettre en œuvre ce comportement en classe alors u doit implémenter cette interface en classe puis classe cette fonctionnalité de comportement ou il peut avoir un comportement multiple.

parce que la classe peut implémenter plusieurs interfaces.

Si quelqu'un d'autre est comme moi et apprend par exemple et de faire, plutôt que seule explication, voici un code ....

Je trouve cette mise en œuvre d'un réseau de neurones en C #, y compris le téléchargement du projet, qui utilise des interfaces de manière élégante et utile:

http://www.c-sharpcorner.com/UploadFile/ rmcochran / AI_OOP_NeuralNet06192006090112AM / AI_OOP_NeuralNet.aspx

Voici les principales raisons de l'utilisation des interfaces

  1. Extensibilité
  2. Hiding de mise en œuvre
  3. Accès à l'objet par le biais d'interfaces
  4. Le couplage lâche.

savoir sur les interfaces par exemple de code téléchargeable

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top