Als «solid» getaggte Fragen

Mnemonik für eine Reihe von Entwurfsprinzipien: Einzelverantwortung, Offen-Geschlossen, Liskov-Substitution, Schnittstellentrennung, Abhängigkeitsinversion




11
Stellen Sie sicher, dass jede Klasse nur eine Verantwortung hat. Warum?
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 …


5
Wo solltest du Konstanten setzen und warum?
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 …

6
Zusätzliche Zeile im Block vs. zusätzlicher Parameter in Clean Code
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 …
33 clean-code  solid 

9
Entwerfen einer Klasse, um ganze Klassen als Parameter und nicht einzelne Eigenschaften zu verwenden
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, …
30 java  c#  design  solid 


9
Was kann schief gehen, wenn das Liskov-Substitutionsprinzip verletzt wird?
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.

3
Werden statische Klassen mit statischen Methoden als SOLID betrachtet?
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 …

12
SOLID vs. Vermeidung vorzeitiger Abstraktion
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 …



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 …

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.