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. …
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 …
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 …
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 …
Alan Kay behauptet, dass "ich den Begriff" objektorientiert "erfunden habe, und ich kann Ihnen sagen, dass ich nicht an C ++ gedacht habe." Was er vorhatte, war natürlich Smalltalk. Aber er hat die objektorientierte Programmierung selbst nicht erfunden; er bekam die Grundideen von Simula. Also, wenn der Begriff noch nicht …
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 …
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 …
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 …
In meinem aktuellen Job wurde ich einige Male damit beauftragt, alten Code zu bereinigen. Oft ist der Code ein Labyrinth und die Daten dahinter sind noch verworrener. Ich finde mich dabei, Dinge in nette, saubere, modulare Methoden zu zerlegen. Jede Methode macht eine Sache und macht es gut. Dann geht …
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 …
Geschlossen. Diese Frage ist nicht zum Thema . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so dass es beim Thema für Software Engineering Stapel Börse. Geschlossen vor 4 Jahren . Kürzlich hörte ich von einem Ausbilder, dass das Entwickeln von Spielen der beste …
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 …
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 …
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 …
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 …
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.