Als «interfaces» getaggte Fragen

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

4
Schnittstelle oder Klasse zurückgeben
Angenommen, ich habe eine Methode public List<User> GetBatchOfUsers(IEnumerable<int> userIDs) { List<User> users = new List<User>(); // some database stuff return users; } Ich habe gelesen, dass es besser wäre, eine Schnittstelle (entweder IListoder IEnumerable) zurückzugeben, als eine zurückzugeben List. Einige Argumente, die ich dafür gehört habe, sind, dass es Daten …
9 c#  interfaces  class 

1
Implizite oder explizite Schnittstellen
Ich glaube, ich verstehe die tatsächlichen Einschränkungen des Polymorphismus zur Kompilierungszeit und des Laufzeitpolymorphismus. Aber was sind die konzeptionellen Unterschiede zwischen expliziten Schnittstellen (Laufzeit - Polymorphismus. Dh virtuelle Funktionen und Zeiger / Referenzen) und implizite Schnittstellen (Kompilierung-Polymorphismus. Dh. Vorlagen) . Ich bin der Meinung, dass zwei Objekte, die dieselbe explizite …

3
Was kann ich anstelle von Schnittstellen in Ruby (oder einer anderen dynamischen Sprache) verwenden?
Mein Ziel ist es, Verträge zwischen Klassen zu definieren. Ich mag das Entenschreiben und alles, aber ich möchte auch eine Schnittstelle zwischen verschiedenen Ebenen meiner Anwendung definieren, um klar zu definieren, welche Methode von außen aufgerufen werden soll und welche zusätzlichen Methoden von der anderen Ebene nicht verwendet werden sollten …


2
Optionale Funktionen: Standardmethode oder separate Schnittstelle
Spezielle Schnittstellen scheinen eine gute Möglichkeit zu sein, die optionalen Funktionen in einer domänenspezifischen Typhierarchie bereitzustellen. Sie behindern jedoch die Verwendung von Dekorations- und Verbundmustern, was auch in dieser Art von Hierarchie üblich ist. Insbesondere möchte wahrscheinlich niemand einen Dekorator / Verbund für jede mögliche Kombination dieser Schnittstellen implementieren. Daher …


7
So erzwingen Sie die Implementierung der Schnittstelle, um sich auf eine bestimmte Weise zu verhalten
Angenommen, Sie hätten die folgende Schnittstelle public interface IUserRepository { User GetByID(int userID); } Wie würden Sie Implementierer dieser Schnittstelle dazu zwingen, eine Ausnahme auszulösen, wenn ein Benutzer nicht gefunden wird? Ich vermute, dass es nicht möglich ist, nur mit Code zu arbeiten. Wie würden Sie Implementierer dazu zwingen, das …

4
Anwendungsfälle für "private" Schnittstellen?
Ich habe mich gefragt, ob es einen gültigen Anwendungsfall gibt, um die spezifischen internen Eigenschaften und Funktionen einer Klasse auf ähnliche Weise wie eine Schnittstelle die öffentlichen Eigenschaften und Funktionen einer Klasse definieren zu können. Stellen Sie sich die Aufgabe vor, eine Klasse aufzubauen, die einen Menschen beschreibt. Offensichtlich ist …

3
Voraussetzungen prüfen oder nicht
Ich wollte eine solide Antwort auf die Frage finden, ob Laufzeitprüfungen durchgeführt werden sollen, um Eingaben zu validieren, um sicherzustellen, dass ein Kunde das vertraglich festgelegte Ende der Vereinbarung eingehalten hat. Stellen Sie sich zum Beispiel einen einfachen Klassenkonstruktor vor: class Foo { public: Foo( BarHandle bar ) { FooHandle …


3
Wie funktionieren Text User Interfaces (TUI)?
Ich wurde kürzlich beauftragt, ein altes COBOL-Programm zu portieren. Ich bin an GUIs gewöhnt und kann nicht verstehen, wie eine TUI funktioniert. Ich habe viel über Google gesucht, aber nichts gefunden. Ich wusste, dass Konsolenanwendungen zeilenweise ausgegeben werden können, aber wie werden Farben usw. auf den Terminalbildschirm gezeichnet? Wie wird …

5
Welche Grundprinzipien möchten Sie in einer Bibliothek?
Es wird darüber gesprochen, welche Syntax und Funktion Sie in einer Programmiersprache mögen. Ich werde jetzt fragen, welche Grundprinzipien oder Funktionen Sie in einer Bibliothek in Ihrer Lieblingssprache (oder einer anderen Sprache) wünschen. Ein Beispiel ist das Hinzufügen von list + = anotherList, anstatt nur list + = listElement zuzulassen …
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.