Ich habe ein Modul, sagen Sie "M", das ein paar Clients hat, sagen Sie "C1", "C2", "C3". Ich möchte den Namespace des Moduls M, dh die Deklarationen der von ihm verfügbar gemachten APIs und Daten, so in Header-Dateien unterteilen, dass: Für jeden Client sind nur die erforderlichen Daten und APIs …
Ab Java 8 wurden defaultMethoden in Interfaces eingeführt. Im Endeffekt bedeutet dies, dass nicht alle Methoden in einem interfacesind abstract. Ab Java 9 sind (möglicherweise) privateMethoden zulässig. Dies bedeutet, dass nicht alle Methoden in einem interfacesind public abstract. Die Frage "Sollen Methoden in einer Java-Schnittstelle mit oder ohne den publicZugriffsmodifikator …
Ich entwerfe eine Schnittstelle mit zwei ähnlichen Methoden: public interface ThingComputer { default Thing computeFirstThing() { return computeAllThings().get(0); } default List<Thing> computeAllThings() { return ImmutableList.of(computeFirstThing()); } } Etwa die Hälfte der Implementierungen berechnet immer nur eine Sache, während die andere Hälfte möglicherweise mehr berechnet. Hat dies einen Präzedenzfall in weit …
Ich verstehe, wie man mit Interfaces und der expliziten Implementierung von Interfaces in C # arbeitet, aber ich habe mich gefragt, ob es als schlechte Form angesehen wird, bestimmte Member zu verstecken, die nicht häufig verwendet werden. Beispielsweise: public interface IMyInterface { int SomeValue { get; set; } int AnotherValue …
Ich habe mich in letzter Zeit mit "organisierterer" Programmierung befasst und gelernt, dass ich auf eine Schnittstelle programmieren sollte, nicht auf eine Implementierung. Wäre es in diesem Sinne besser, ein Projekt in Schnittstellen zu "skizzieren", bevor Sie, wo möglich, die Implementierung dafür schreiben? Und wenn dies der Fall ist, sollte …
Gibt es einen Unterschied zwischen public class A extends AbstractB implements C {...} gegen... public class A extends AbstractB {...} abstract class AbstractB implements C {...} Ich verstehe, dass Klasse A in beiden Fällen der Schnittstelle entspricht. Im zweiten Fall AbstractBkann die Implementierung für Schnittstellenmethoden in bereitgestellt werden C. Ist …
Kontext: Ich verwende C # Ich habe eine Klasse entworfen, und um sie zu isolieren und das Testen von Einheiten zu vereinfachen, übergebe ich alle Abhängigkeiten. Intern wird keine Objektinstanziierung durchgeführt. Anstatt auf Schnittstellen zu verweisen, um die benötigten Daten zu erhalten, verweise ich auf allgemeine Funktionen, die die erforderlichen …
Seit Jahrzehnten ist es der Fall gewesen , dass Schnittstellen war nur nur (nur) für die Angabe Methodensignaturen. Uns wurde gesagt, dass dies der "richtige Weg ist, Dinge zu tun ™". Dann kam Java 8 heraus und sagte: Nun können Sie Standardmethoden definieren. Ich muss rennen, tschüss. Ich bin gespannt, …
Ich entwerfe mein eigenes kleines OOP-Programm zur Simulation von Vampiren, Wölfen, Menschen und Lastwagen und versuche, mein eigenes begrenztes Verständnis von Schnittstellen zu implementieren. ( Ich abstrahiere hier noch und habe noch keine Code-Implementierung, es ist also eher eine Frage des OOP-Designs ... denke ich!) Habe ich Recht , wenn …
Ich versuche ein Kartenspiel zu modellieren, bei dem Karten zwei wichtige Funktionen haben: Der erste ist ein Effekt. Dies sind die Änderungen am Spielstatus, die auftreten, wenn Sie die Karte spielen. Die Schnittstelle für den Effekt ist wie folgt: boolean isPlayable(Player p, GameState gs); void play(Player p, GameState gs); Und …
Obwohl dies eine allgemeine Frage ist, ist sie auch spezifisch für ein Problem, auf das ich momentan stoße. Ich habe derzeit eine in meiner Lösung angegebene Schnittstelle namens public interface IContextProvider { IDataContext { get; set; } IAreaContext { get; set; } } Diese Schnittstelle wird oft im gesamten Programm …
Laut Herb Sutter sollte man abstrakte Interfaces (alle rein virtuellen Funktionen) abstrakten Klassen in C ++ vorziehen, um die Implementierung so weit wie möglich zu entkoppeln. Obwohl ich diese Regel persönlich sehr nützlich finde, bin ich kürzlich einem Team mit vielen Java-Programmierern beigetreten, und im Java-Code scheint diese Richtlinie nicht …
Bei der Entwicklung in OOP wird manchmal eine Schnittstelle / ein Vertrag von einer Bibliothek vergeben, die Sie nicht ändern können. Nennen wir diese Schnittstelle J. Jetzt haben Sie ein Objekt der Klasse A, das Objekte verwendet, die diese Schnittstelle implementieren. Innerhalb von A wird nur ein kleiner Teil der …
Ich versuche mir Software-Engineering beizubringen und stoße auf widersprüchliche Informationen, die mich verwirren. Ich habe OOP gelernt und was abstrakte Klassen / Schnittstellen sind und wie man sie verwendet, aber dann lese ich, dass man "Komposition gegenüber Vererbung bevorzugen" sollte. Ich verstehe Komposition ist, wenn eine Klasse ein Objekt einer …
Ich habe eine Klasse mit einigen Standard- / gemeinsamen Funktionen. Ich benutze abstract classdafür: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } protected …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.