Angenommen, ich habe ein benutzerdefiniertes Objekt, Student : public class Student{ public int _id; public String name; public int age; public float score; } Und eine Klasse, Window , mit der Informationen eines Schülers angezeigt werden : public class Window{ public void showInfo(Student student); } Es sieht ganz normal aus, …
Dieser Blogpost wurde in den Hacker News mit mehreren positiven Stimmen gepostet. Aus C ++ stammend, scheinen die meisten dieser Beispiele gegen das zu verstoßen, was mir beigebracht wurde. Zum Beispiel # 2: Schlecht: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end gegen gut: system_monitor.check_for_overheating class SystemMonitor def check_for_overheating …
Ich versuche, die SOLID-Prinzipien von OOP zu verstehen, und bin zu dem Schluss gekommen, dass LSP und OCP einige Ähnlichkeiten aufweisen (um nicht mehr zu sagen). Das Open / Closed-Prinzip besagt, dass "Software-Entitäten (Klassen, Module, Funktionen usw.) für Erweiterungen offen, für Änderungen jedoch geschlossen sein sollten". LSP gibt in einfachen …
Diese Frage ist subjektiv, aber ich war nur neugierig, wie die meisten Programmierer das angehen. Das folgende Beispiel ist in Pseudo-C #, dies sollte jedoch auch für Java, C ++ und andere OOP-Sprachen gelten. Wenn ich in meinen Klassen Hilfsmethoden schreibe, neige ich dazu, sie als statisch zu deklarieren und …
Als ich anfing, Javascript zu programmieren, nachdem ich mich hauptsächlich mit OOP in klassenbasierten Sprachen befasst hatte, war ich verwirrt darüber, warum prototypbasiertes OOP jemals dem klassenbasierten OOP vorgezogen würde. Welche strukturellen Vorteile bietet die Verwendung von prototypbasiertem OOP, falls vorhanden? (Würden wir erwarten, dass es in bestimmten Anwendungen schneller …
Ich habe die frühe Geschichte von Smalltalk gelesen und es gibt einige Erwähnungen von "Aufgaben", die mich dazu bringen, mein Verständnis ihrer Bedeutung in Frage zu stellen: Obwohl OOP aus vielen Motivationen stammte, standen zwei im Mittelpunkt. Die große Aufgabe bestand darin, ein besseres Modulschema für komplexe Systeme zu finden, …
In einem Blog-Post auf F # heißt es zum Spaß und Gewinn: In einem funktionalen Design ist es sehr wichtig, das Verhalten von den Daten zu trennen. Die Datentypen sind einfach und "dumm". Und dann haben Sie separat eine Reihe von Funktionen, die auf diese Datentypen einwirken. Dies ist das …
Ich weiß, dass ich in PHP eine Ausnahme vom Konstruktor auslösen kann, aber sollte ich das tun? Zum Beispiel, wenn der Wert eines Parameters nicht dem entspricht, den ich erwartet habe. Oder sollte ich es verschieben, eine Ausnahme auszulösen, bis eine Methode aufgerufen wird? Was sind in beiden Fällen Vor- …
OK, der Titel ist ein bisschen knifflig, aber im Ernst, ich war auf einem Tell, frag eine Weile nicht nach Kick. Mir gefällt, wie es Methoden anregt, wirklich objektorientiert als Botschaften verwendet zu werden . Aber das hat ein quälendes Problem, das mir durch den Kopf ging. Ich habe den …
Ich geriet in eine interessante Internet-Auseinandersetzung über Getter- und Setter-Methoden und Verkapselung. Jemand sagte, dass alles, was sie tun sollten, eine Zuweisung (Setter) oder ein variabler Zugriff (Getter) sei, um sie "rein" zu halten und die Kapselung sicherzustellen. Habe ich recht, dass dies den Zweck, Getter und Setter zu haben, …
Wenn eine Datenstruktur (z. B. eine Warteschlange) in einer OOP-Sprache implementiert wird, müssen einige Mitglieder der Datenstruktur privat sein (z. B. die Anzahl der Elemente in der Warteschlange). Eine Warteschlange kann auch in einer prozeduralen Sprache implementiert werden, indem a structund eine Reihe von Funktionen verwendet werden, die auf dem …
Die bestbewertete Antwort auf diese Frage nach dem Liskov-Substitutionsprinzip erfordert die Unterscheidung zwischen den Begriffen Untertyp und Unterklasse . Es wird auch darauf hingewiesen, dass einige Sprachen die beiden Sprachen miteinander verbinden, andere jedoch nicht. Für die objektorientierten Sprachen, die ich am besten kenne (Python, C ++), sind "Typ" und …
Um mehrere mögliche Fehler zu behandeln, die die Ausführung nicht anhalten sollten, habe ich eine errorVariable, die Clients überprüfen und zum Auslösen von Ausnahmen verwenden können. Ist das ein Anti-Pattern? Gibt es eine bessere Möglichkeit, damit umzugehen? Ein Beispiel dafür finden Sie in der mysqli- API von PHP . Angenommen, …
Dies mag eine dumme Frage sein oder auch nicht, aber ich würde wirklich gerne die Antwort auf etwas wissen, das mich eine Weile beschäftigt hat. Ich sehe ziemlich oft Programmierbeispiele / -konventionen, bei denen der Programmierer ein Verzeichnis erstellt hat, das aufgerufen wird acme, um Inhalte abzulegen. Was heißt Acmedas? …
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.