Als «interfaces» getaggte Fragen

Fragen zu Überlegungen zum Design der Benutzeroberfläche, z. B. zur Programmierung der Schnittstelle.



19
Warum sind Schnittstellen nützlich?
Ich lerne und programmiere seit einiger Zeit in C #. Trotzdem kann ich die Nützlichkeit von Schnittstellen nicht beurteilen. Sie bringen zu wenig auf den Tisch. Abgesehen von der Bereitstellung der Funktionssignaturen tun sie nichts. Wenn ich mich an die Namen und Unterschriften der Funktionen erinnern kann, die implementiert werden …
158 interfaces 

5
Warum sollte ich Kompositionen der Vererbung vorziehen?
Ich habe immer gelesen, dass Kompositionen der Vererbung vorzuziehen sind. Ein Blogbeitrag über andere Arten zum Beispiel befürwortet die Verwendung von Komposition anstelle von Vererbung, aber ich kann nicht sehen, wie Polymorphismus erreicht wird. Aber ich habe das Gefühl, wenn Leute sagen, sie bevorzugen Komposition, dann meinen sie wirklich, sie …

5
Warum wurden Schnittstellen in Java 8 Standardmethoden und statische Methoden hinzugefügt, als wir bereits abstrakte Klassen hatten?
In Java 8 können Schnittstellen implementierte Methoden, statische Methoden und sogenannte "Standard" -Methoden enthalten (die von den implementierenden Klassen nicht überschrieben werden müssen). Aus meiner (wahrscheinlich naiven) Sicht bestand keine Notwendigkeit, solche Schnittstellen zu verletzen. Schnittstellen waren schon immer ein Vertrag, den Sie erfüllen müssen, und dies ist ein sehr …

15
Sollten wir unseren Code von Anfang an entwerfen, um Unit-Tests zu ermöglichen?
In unserem Team wird derzeit diskutiert, ob das Ändern des Code-Designs, um das Testen von Einheiten zu ermöglichen, ein Codegeruch ist oder inwieweit dies ohne Codegeruch möglich ist. Dies ist darauf zurückzuführen, dass wir gerade erst damit beginnen, Praktiken einzuführen, die in nahezu jedem anderen Softwareentwicklungsunternehmen vorhanden sind. Insbesondere werden …



7
Wann werden abstrakte Klassen anstelle von Schnittstellen mit Erweiterungsmethoden in C # verwendet?
"Abstrakte Klasse" und "Schnittstelle" sind ähnliche Konzepte, wobei die Schnittstelle die abstraktere der beiden ist. Ein entscheidender Faktor ist, dass abstrakte Klassen bei Bedarf Methodenimplementierungen für abgeleitete Klassen bereitstellen. In C # wurde dieser Differenzierungsfaktor jedoch durch die kürzliche Einführung von Erweiterungsmethoden reduziert, die es ermöglichen, Implementierungen für Schnittstellenmethoden bereitzustellen. …

10
Ist besser Show () + Hide () oder SetVisible (Bool sichtbar)?
Was ist besser und warum? (Aus Sicht des Interface-Designs): a) Zwei Show()und Hide()Funktionen haben b) Eine SetVisible(bool visible)Funktion haben BEARBEITEN: Zum Beispiel haben einige Objekte einen Sichtbarkeitsstatus und diese Funktion wird verwendet, um diesen zu ändern. c) haben alle drei Show(), Hide(), SetVisible(bool visible)Funktionen
59 java  c++  interfaces 

3
Warum lässt C # Eigenschaften in Schnittstellen zu?
In C # ist der folgende Code gültig interface I{ int property{get;set;} } Was für mich keinen Sinn ergibt. Dies scheint eines der wichtigsten Prinzipien von Schnittstellen zu brechen: mangelnder Zustand (dh keine Felder). Erstellt die Eigenschaft kein implizites privates Feld? Wäre das nicht wirklich schlecht für Schnittstellen?


4
Was meinte Rich Hickey, als er sagte: "All diese Spezifität [von Schnittstellen / Klassen / Typen] tötet Ihre Wiederverwendung!"
In Rich Hickeys zum Nachdenken anregendem Hauptvortrag " The Value of Values " (29 Minuten) spricht er über den Overhead einer Sprache wie Java und erklärt: "Alle diese Schnittstellen töten Ihre Wiederverwendung." Was meint er? Ist das wahr? Auf meiner Suche nach Antworten bin ich auf folgendes gestoßen: Das Prinzip …


11
Sind abstrakte Klassen / Methoden überholt?
Ich habe viele abstrakte Klassen / Methoden erstellt. Dann habe ich angefangen, Schnittstellen zu verwenden. Jetzt bin ich mir nicht sicher, ob Interfaces abstrakte Klassen nicht überflüssig machen. Sie benötigen eine vollständig abstrakte Klasse? Erstellen Sie stattdessen eine Schnittstelle. Sie benötigen eine abstrakte Klasse mit einer Implementierung? Erstellen Sie eine …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.