Als «object-oriented» getaggte Fragen

Eine Methode, mit der ein System als eine Reihe von Objekten modelliert werden kann, die modular gesteuert und bearbeitet werden können

3
Gibt es OO-Sprachen ohne Vererbung?
Während einer Codeüberprüfung sagte heute ein Kollege von mir etwas Interessantes: prototypeist nur nützlich, wenn Sie Vererbung benötigen - und wann ist Vererbung jemals eine gute Idee ? Ich habe darüber nachgedacht und festgestellt, dass ich normalerweise Vererbung verwende, um Code zu umgehen, der von Anfang an schlecht entworfen wurde. …

7
Muster zur Weitergabe von Änderungen in einem Objektmodell ..?
Hier ist ein häufiges Szenario, das für mich immer frustrierend ist. Ich habe ein Objektmodell mit einem übergeordneten Objekt. Das übergeordnete Objekt enthält einige untergeordnete Objekte. Etwas wie das. public class Zoo { public List<Animal> Animals { get; set; } public bool IsDirty { get; set; } } Jedes untergeordnete …

9
OOP-Prinzipien und Methodennamen
class Boxer: def punch(self, punching_bag, strength): punching_bag.punch(strength) class PunchingBag: def punch(self, strength): print "Punching bag punched with strength", strength boxer = Boxer() punching_bag = PunchingBag() boxer.punch(punching_bag, 2) Kein Zweifel, das punchist ein guter Methodenname im Falle eines Boxers. Aber ist der Name punchauch gut für die Methode des Boxsacks? In …

6
Sollte ein Objekt seine eigene ID kennen?
obj.idscheint ziemlich verbreitet zu sein und scheint auch in den Bereich von etwas zu fallen, das ein Objekt über sich selbst wissen könnte. Ich frage mich, warum mein Objekt seine eigene ID kennen sollte. Es scheint keinen Grund zu geben, es zu haben? Einer der Hauptgründe für das Vorhandensein ist …


6
Ist lose Kupplung ohne Use Cases ein Anti-Pattern?
Lose Kopplung ist für einige Entwickler das Allerheiligste an ausgereifter Software. Es ist auf jeden Fall eine gute Sache, wenn Code angesichts von Änderungen, die in absehbarer Zukunft wahrscheinlich auftreten werden, flexibler wird oder wenn Code-Duplikationen vermieden werden. Auf der anderen Seite erhöhen Bemühungen, Komponenten lose zu koppeln, die Indirektion …

3
Wie gehe ich mit Fehlerfällen im C ++ - Klassenkonstruktor um?
Ich habe eine CPP-Klasse, deren Konstruktor einige Operationen ausführt. Einige dieser Vorgänge schlagen möglicherweise fehl. Ich weiß, dass Konstrukteure nichts zurückgeben. Meine Fragen sind: Dürfen andere Operationen als das Initialisieren von Mitgliedern in einem Konstruktor ausgeführt werden? Ist es möglich, der aufrufenden Funktion mitzuteilen, dass einige Operationen im Konstruktor fehlgeschlagen …

4
"Zu objektorientiert"
Ich habe einen starken OO-Hintergrund und arbeite seit kurzem in einer Organisation, die, obwohl der Code in Java geschrieben ist, viel weniger Wert auf gutes OO-Design legt als ich es gewohnt bin. Mir wurde gesagt, dass ich "zu viel Abstraktion" einführe, und dass ich stattdessen die Art und Weise codieren …


5
Verwenden statischer Klassen als Namespaces
Diese Frage wurde von Stack Overflow migriert, da sie in Software Engineering Stack Exchange beantwortet werden kann. Vor 8 Jahren migriert . Ich habe andere Entwickler gesehen, die statische Klassen als Namespaces verwendeten public static class CategoryA { public class Item1 { public void DoSomething() { } } public class …


4
Wie kann die Codeabdeckung drastisch verbessert werden?
Ich werde damit beauftragt, eine Legacy-Anwendung unter Unit-Test zu stellen. Zunächst einige Hintergrundinformationen zur Anwendung: Es handelt sich um eine Java-RCP-Codebasis mit 600.000 LOC mit diesen Hauptproblemen massive Code-Vervielfältigung Keine Kapselung, die meisten privaten Daten sind von außen zugänglich, einige der Geschäftsdaten wurden auch als Singletons erstellt, sodass sie nicht …

5
Verstoßen Sonderfälle mit Ausweichmanövern gegen das Liskov-Substitutionsprinzip?
Angenommen, ich habe eine Schnittstelle FooInterfacemit der folgenden Signatur: interface FooInterface { public function doSomething(SomethingInterface something); } Und eine konkrete Klasse ConcreteFoo, die diese Schnittstelle implementiert: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Ich möchte ConcreteFoo::doSomething()etwas Einzigartiges tun, wenn es einem bestimmten SomethingInterfaceObjekttyp übergeben wird …

5
Was sind die Vorteile der Abhängigkeitsinjektion in Fällen, in denen fast jeder Zugriff auf eine gemeinsame Datenstruktur benötigt?
Es gibt viele Gründe, warum Globale in OOP böse sind . Wenn die Anzahl oder Größe der Objekte, die gemeinsam genutzt werden müssen, zu groß ist, um effizient in Funktionsparametern weitergegeben zu werden, empfiehlt normalerweise jeder die Abhängigkeitsinjektion anstelle eines globalen Objekts. In dem Fall, in dem fast jeder eine …

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 …

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.