79 votes

Pourquoi utilisons-nous Interface? Est-ce seulement pour la normalisation?

Pourquoi utilisons-nous Interface?

Est-ce seulement pour la normalisation?

170voto

John K Points 13695

Fins d'Interfaces

  • créer des logiciels faiblement couplé
  • l'appui de la conception par contrat (un réalisateur doit fournir à l'ensemble de l'interface)
  • permettre de logiciels enfichables
  • permettre à différents objets pour interagir facilement
  • masquer les détails d'implémentation des classes les unes des autres
  • faciliter la réutilisation des logiciels en

Analogie 1: tout comme la navette spatiale américaine, russe Soyouz vaisseau spatial et Chinois Shenzhou 5 peuvent tous quai de la Station Spatiale Internationale, parce qu'ils mettent en œuvre les mêmes d'accueil de l'interface. (Ceci est juste un exemple - je ne sais pas si c'est vrai, dans la vraie vie, mais nous allons suspendre notre incrédulité pour le bien d'un exemple)

Analogie 2: Comme vous pouvez le brancher différents moniteurs d'ordinateur dans votre ordinateur à la maison. Vous pouvez brancher un mur PLAT, un vieux CRT (l'épaisseur de genre), un 20" écran plat, ou une machine braille pour les aveugles de "voir" par le toucher. Il y a compatibilité entre ces divers/divers appareils et votre ordinateur, car ils sont tous d'accord sur les standards de l'interface.

Détails de C# interfaces-- Avec C#/programmation orientée objet interfaces que vous êtes en train de faire le même genre de chose mais dans l'invisible/monde virtuel.

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

(Plus vous l'utilisez interfaces des logiciels de plus ces "buzz words" sera compris. Et toujours considérer les interfaces dans le monde réel, parce qu'ils nous ont fait aussi bien.)

29voto

martin Points 1449

Une interface est utilisée pour décrire ce qu'une chose implémentée peut faire. Vous avez donc la possibilité de traiter plusieurs objets implémentant 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 manières. 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 explique un peu pourquoi les interfaces sont utiles.

5voto

Omu Points 17372

C'est pour l'interface :), afin que vous puissiez interfacer entre les choses, c'est utile lorsque vous avez

  • plusieurs implémentations de la même chose
  • lorsque vous appliquez une interface à plusieurs classes différentes parce que vous avez besoin d'une sorte de convention voulant que ces classes puissent faire des choses ou avoir des fonctionnalités

3voto

matt_dev Points 2248

Voici la vue de haut niveau...

Les Interfaces jouent un rôle important dans le concept de se Cacher de l'Information.

En gros, ils vous aider à cacher les détails de mise en œuvre de votre classe de sorte qu'un appel de classe n'a pas de dépendance à la mise en œuvre. Par conséquent, en utilisant les interfaces, vous pouvez modifier la mise en œuvre sans modifier l'appel de la classe. Tout cela tourne dans les limites de la complexité de votre code et de le rendre plus facile à maintenir dans le long terme.

Quand j'ai commencé à comprendre les interfaces qu'elles ont été expliquées à moi comme un "contrat qui fournit une description de votre classe." Pas sûr si cela va vous aider, mais si vous pensez à une interface pour une voiture, on pourrait dire que c' lecteurs, des sautset des virages. Donc, tant que ça me prend d'Un point a à un point B, je n'ai pas vraiment de savoir comment ces fonctions sont mises en œuvre.

2voto

Catalin DICU Points 2785

Les interfaces sont utilisées principalement dans des langages tels que C # / Java car ces langages ne prennent pas en charge l'héritage multiple (classe) (voir http://stackoverflow.com/questions/225929/what-is-the-exact-problem- avec-multiple-héritage ).

Mais l'implémentation multiple (interface) est permise, ce qui permet aux classes d'être utilisées de différentes manières.

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