Als «interfaces» getaggte Fragen

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

3
Generics vs Common Interface?
Ich kann mich nicht erinnern, wann ich das letzte Mal einen Sammelkurs geschrieben habe. Jedes Mal, wenn ich denke, ich brauche es, nachdem ich nachgedacht habe, komme ich zu dem Schluss, dass ich es nicht tue. Die zweite Antwort auf diese Frage veranlasste mich zur Klärung (da ich noch keinen …

4
Wer erweitert Schnittstellen? Und warum?
AFAIK, meine Klasse extendsElternklassen und implementsSchnittstellen. Aber ich stoße auf eine Situation, die ich nicht nutzen kann implements SomeInterface. Es ist die Deklaration eines generischen Typs. Beispielsweise: public interface CallsForGrow {...} public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work! extends ArrayList<T> Hier ist das Verwenden implementssyntaktisch verboten. Ich …


2
Prinzip des geringsten Erstaunens (POLA) und Schnittstellen
Vor gut einem Vierteljahrhundert, als ich C ++ lernte, wurde mir beigebracht, dass Interfaces verzeihen sollten und dass die Reihenfolge, in der Methoden aufgerufen wurden, so weit wie möglich unberücksichtigt bleiben sollte, da der Verbraucher möglicherweise keinen Zugriff auf die Quelle oder Dokumentation anstelle von hat Dies. Wann immer ich …

4
Sollte ein Front-End-Entwickler jemals das JSON-Format für Back-End-Entwickler angeben?
Ich übernehme die Front-End-Rolle in einem Projekt. Sollte ich für meine Back-End-Teammitglieder das genaue Format von JSON angeben, das ihr PHP an mein JavaScript zurückgibt? Soll ich ihnen zum Beispiel sagen, dass sie ein Format verwenden sollen, das dem hier beschriebenen Format ähnelt: Richtige Strukturierung von JSON für den Front-End-Verbrauch …

5
Erstellen Aufzählungen spröde Schnittstellen?
Betrachten Sie das folgende Beispiel. Jede Änderung an der ColorChoice-Enumeration wirkt sich auf alle IWindowColor-Unterklassen aus. Neigen Aufzählungen dazu, spröde Schnittstellen zu verursachen? Gibt es etwas Besseres als eine Aufzählung, um mehr polymorphe Flexibilität zu ermöglichen? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor { …



5
Verwendung des Schlüsselworts "Using" in der C # -Schnittstelle
Wenn ich mit C # Code schreibe und mit Visual Studio 2010 eine Schnittstelle definiere, enthält diese immer eine Reihe von "using" -Anweisungen (wie im Beispiel gezeigt). using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestEngine.TestNameSpace { interface ITest1 { bool testMethod(int xyz); } } Ich frage mich, wofür …

2
Unzulässig in PHP: Gibt es einen OOP-Designgrund?
Die folgende Schnittstellenvererbung ist in PHP illegal, aber ich denke, dass sie im wirklichen Leben ziemlich nützlich wäre. Gibt es ein aktuelles Antimuster oder ein dokumentiertes Problem mit dem unten aufgeführten Design, vor dem PHP mich schützt? <?php /** * Marker interface */ interface IConfig {} /** * An api …

5
Objekt zweimal an dieselbe Methode übergeben oder mit kombinierter Schnittstelle konsolidieren?
Ich habe eine Methode, die eine Datendatei erstellt, nachdem ich mit einer digitalen Karte gesprochen habe: CreateDataFile(IFileAccess boardFileAccess, IMeasurer boardMeasurer) Hier boardFileAccessund boardMeasurersind die gleiche Instanz eines BoardObjekts, das sowohl IFileAccessals auch implementiert IMeasurer. IMeasurerwird in diesem Fall für eine einzelne Methode verwendet, bei der ein Pin auf der Platine …



6
Was sind die Unterschiede zwischen abstrakten Klassen, Interfaces und wann sie verwendet werden sollen?
Vor kurzem habe ich angefangen, mich mit OOP zu beschäftigen, und jetzt bin ich so weit, dass ich umso verwirrter werde, je mehr ich über die Unterschiede zwischen abstrakten Klassen und Schnittstellen lese. Bisher kann keiner von beiden instanziiert werden. Schnittstellen sind mehr oder weniger strukturelle Entwürfe, die das Gerüst …


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.