4 Stimmen

Was ist der Vorteil der Verwendung von Interface?

Welchen Nutzen hat die Verwendung von Interface?

Ich habe gehört, dass es anstelle von Mehrfachvererbung verwendet wird und dass man damit auch Daten verstecken kann.

Gibt es noch andere Vorteile, wo werden Schnittstellen verwendet, und wie kann ein Programmierer erkennen, dass eine Schnittstelle benötigt wird?

Was ist der Unterschied zwischen explicit interface implementation y implicit interface implementation ?

0voto

Giovanni Galbo Punkte 12811

Eine Schnittstelle ist ein Vertrag; sie ist eine Garantie dafür, dass die angegebenen Methoden und Eigenschaften verfügbar sind. Sie bietet keine Implementierung, was sie von einer Klasse unterscheidet, die eine Implementierung anbietet.

Schnittstellen sind die höchste Abstraktionsebene, sie liefern dem Verbraucher keine Implementierungsdetails.

Schnittstellen sind semantisch fast gleichwertig mit rein abstrakten Klassen (Klassen, die keine jede Umsetzung). In c#, vb.net und anderen Sprachen können Klassen mehrere Schnittstellen haben, aber nur eine Basisklasse. Ein besonderer Vorteil von Schnittstellen gegenüber (abstrakten oder anderen) Klassen besteht also darin, dass Sie mehrere Schnittstellen implementieren können, aber nur von einer Klasse erben.

0voto

Adas Lesniak Punkte 107

Das ist wahrscheinlich eher eine Frage an erfahrenere Programmierer als eine Antwort, aber... Die meiste Zeit habe ich mit einem kleinen Team gearbeitet, und wir standen uns nahe und kannten uns gut. Und ich habe mich gefragt, was Schnittstellen eigentlich sind. Aber mein letztes Projekt war mit einem neuen Team und war etwas größer. Und es war ein heilloses Durcheinander. Und nach einiger Zeit kam ich zu dem Schluss: Wir sollten Schnittstellen verwenden.

Nicht als Lösung für technische Probleme, sondern als eine Art Design-Doku, die im Code steht, die Sie zwingt, diesem Design zu folgen, das schwer zu ignorieren ist, was die Zusammenarbeit 100 Mal einfacher machen würde. Es ist kein Problem, sich zusammenzusetzen und sich eine Schnittstelle auszudenken. Und dann kann man sich aufteilen und die Sachen alleine implementieren. Aber wenn man sich an die Schnittstelle hält, dann kann jeder andere im Team die Idee der Klasse viel besser verstehen.

Also, meine beste Vermutung ist, dass Schnittstellen ist wirklich nette Art und Weise für die Zusammenarbeit zu arrangieren: implementieren, wie Sie wollen, aber keine öffentliche Schnittstelle außerhalb von Schnittstellen, und Neuschreiben von Schnittstellen muss mit anderen beteiligten getan werden. Einfacher Weg, um den Code in Ordnung zu halten und gemeinsame Sachen und eigene Sachen zu trennen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X