Mnemonik für eine Reihe von Entwurfsprinzipien: Einzelverantwortung, Offen-Geschlossen, Liskov-Substitution, Schnittstellentrennung, Abhängigkeitsinversion
Ich entwerfe gerade meine Anwendung und bin mir nicht sicher, ob ich SOLID und OOP richtig verstehe. Klassen sollten eine Sache tun und es gut machen, aber andererseits sollten sie reale Objekte darstellen, mit denen wir arbeiten. In meinem Fall mache ich eine Feature-Extraktion für einen Datensatz und dann eine …
Ich frage mich immer wieder, ob es legitim ist, Verben zu verwenden, die auf Substantiven in OOP basieren. Ich bin auf diesen brillanten Artikel gestoßen , obwohl ich immer noch nicht der Meinung bin, worauf es ankommt. Um das Problem etwas näher zu erläutern, heißt es in dem Artikel, dass …
Heute habe ich gerade diesen Artikel gesehen, der die Relevanz des SOLID-Prinzips in F # -Entwicklungs- F # und Designprinzipien - SOLID Und während er sich mit dem letzten - "Abhängigkeitsinversionsprinzip" - befasste, sagte der Autor: Aus funktionaler Sicht können diese Behälter- und Injektionskonzepte mit einer einfachen Funktion höherer Ordnung …
Laut Microsoft-Dokumentation, dem Wikipedia SOLID-Hauptartikel oder den meisten IT-Architekten müssen wir sicherstellen, dass jede Klasse nur eine Verantwortung hat. Ich würde gerne wissen warum, denn wenn alle mit dieser Regel einverstanden zu sein scheinen, scheint sich niemand über die Gründe dieser Regel einig zu sein. Einige geben eine bessere Wartung …
Ich fand die SOLID-Prinzipien recht nützlich, wenn ich über objektorientiertes Design nachdachte . Gibt es ähnliche / äquivalente sprachunabhängige Prinzipien, die auf die funktionale Programmierung zugeschnitten sind?
In unseren meist großen Anwendungen haben wir normalerweise nur wenige Stellen für "Konstanten": Eine Klasse für GUI und interne Konstanten (Registerkartentitel, Gruppentitel, Berechnungsfaktoren, Aufzählungen) Eine Klasse für Datenbanktabellen und -spalten (dieser Teil ist generierter Code) sowie lesbare Namen für diese (manuell zugewiesen) Eine Klasse für Anwendungsnachrichten (Protokollierung, Nachrichtenboxen usw.) Die …
Kontext In Clean Code , Seite 35, heißt es Dies impliziert, dass die Blöcke in if-Anweisungen, else-Anweisungen, while-Anweisungen usw. eine Zeile lang sein sollten. Wahrscheinlich sollte diese Zeile ein Funktionsaufruf sein. Dies hält nicht nur die umschließende Funktion klein, sondern fügt auch einen dokumentarischen Wert hinzu, da die im Block …
Angenommen, Sie haben eine Anwendung mit einer weit verbreiteten Klasse namens User. Diese Klasse enthüllt alle Informationen über den Benutzer, seine ID, seinen Namen, die Zugriffsebenen auf die einzelnen Module, die Zeitzone usw. Die Benutzerdaten sind natürlich systemweit referenziert, aber aus welchem Grund auch immer, das System ist so eingerichtet, …
Ich würde es wahrscheinlich als Code-Geruch oder sogar als Anti-Pattern bezeichnen, eine Klasse zu haben, die 23 Interfaces implementiert. Wenn es sich in der Tat um ein Anti-Pattern handelt, wie würden Sie es nennen? Oder folgt es einfach nicht dem Grundsatz der einheitlichen Verantwortung?
Ich verfolgte diese hoch gestimmte Frage bezüglich eines möglichen Verstoßes gegen das Liskov-Substitutionsprinzip. Ich weiß, was das Liskov-Substitutionsprinzip ist, aber was mir immer noch nicht klar ist, kann schief gehen, wenn ich als Entwickler beim Schreiben von objektorientiertem Code nicht über das Prinzip nachdenke.
SOLID enthält das Liskov-Substitutionsprinzip, das den Begriff "Objekte in einem Programm sollten durch Instanzen ihrer Subtypen ersetzt werden können, ohne die Korrektheit dieses Programms zu ändern". Da statische Klassen mit statischen Methoden (ein bisschen wie die MathKlasse) überhaupt keine Instanzen haben, wird mein System als SOLID betrachtet, wenn ich statische …
Ich verstehe, was SOLID leisten soll, und verwende es regelmäßig in Situationen, in denen Modularität wichtig ist und die Ziele eindeutig nützlich sind. Zwei Dinge hindern mich jedoch daran, es konsistent auf meiner Codebasis anzuwenden: Ich möchte eine vorzeitige Abstraktion vermeiden. Nach meiner Erfahrung führt das Zeichnen von Abstraktionslinien ohne …
Ich hatte vor kurzem eine Diskussion mit einem Freund über OOP in der Entwicklung von Videospielen. Ich erklärte die Architektur eines meiner Spiele, das zur Überraschung meines Freundes viele kleine Klassen und mehrere Abstraktionsebenen enthielt. Ich argumentierte, dass dies das Ergebnis von mir war, dass ich mich darauf konzentrierte, alles …
Ich habe zwei Jahre in einer großartigen Investment Bank gearbeitet. Ich habe einige technische Projekte mit dem Wunsch gemacht, den Code unter Berücksichtigung der angepassten guten Entwurfsmuster, des SOLID-Prinzips, des Demeter-Gesetzes und der Vermeidung aller Arten von doppelten Codes zu optimieren. Bei Auslieferung in Produktion => Null Fehler ist alles …
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 …
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.