Designprinzipien bilden die Grundlage, auf der Designmuster aufgebaut werden. Durch die Befolgung bewährter Designprinzipien wird Ihr Code flexibler, widerstandsfähiger gegenüber Änderungen und wartbarer.
Einfachheitsprinzip (KISS)
Das Ziel des KISS-Prinzips besteht darin, den Code einfach, aber nicht zu einfach zu halten, um zu vermeiden Einführung unnötiger, aber komplexer Elemente.
Wiederholen Sie sich nicht (DRY)
BRY-Prinzip, aber der Zweck besteht darin, die Duplizierung eines Teils des Systems zu vermeiden, indem die gemeinsamen Teile herausgezogen und in einem separaten untergebracht werden Ort. Natürlich wird nicht nur Code vermieden, sondern auch Geschäftslogik.
Erzählen, nicht fragen (Erzählen, nicht fragen)
Dieses Prinzip besagt, dass Sie Objekten sagen sollten, welche Aktionen sie ausführen sollen, anstatt Fragen dazu zu stellen Überprüfen Sie den Zustand des Objekts und entscheiden Sie dann selbst, welche Aktionen Sie ausführen möchten. Dies trägt dazu bei, die Verantwortlichkeiten abzustimmen und eine enge Kopplung zwischen den Klassen zu vermeiden.
Sie brauchen es nicht (YAGNI)
Dieses Prinzip bezieht sich darauf, nur die Funktionalität einzubeziehen, die Ihre Anwendung haben muss, und nicht zu versuchen, andere Funktionalität hinzuzufügen, von der Sie denken, dass Sie sie haben könnten brauchen .
Separation of Concerns (SoC)
SoC ist der Prozess der Zerlegung von Software in verschiedene Funktionen, von denen jede einzigartiges Verhalten und Daten kapselt, die von anderen Klassen verwendet werden können. Typischerweise stellt ein Anliegen ein Merkmal oder Verhalten einer Klasse dar. Durch die Aufteilung eines Programms in unabhängige Verantwortlichkeiten werden die Wiederverwendung, Wartbarkeit und Testbarkeit von Code erheblich verbessert.
Single-Responsibility-Prinzip (SRP)
SRP steht in hohem Maße im Einklang mit dem Prinzip der Trennung von Belangen. Es erfordert, dass jedes Objekt nur einen Verantwortungsschwerpunkt haben sollte, d. h. es gibt nur einen Grund für Klassenänderungen.
Open-Closed-Prinzip (OCP)
Dieses Prinzip erfordert, dass eine Klasse für Erweiterungen offen und für Änderungen geschlossen sein sollte, sodass es möglich sein sollte, die Interna der Klasse zu ändern Fügen Sie der Klasse neue Funktionen hinzu, ohne das Verhalten zu beeinträchtigen, und verhindern Sie, dass die Klasse zerstört wird, was zu unnötigen Fehlern oder Bugs führt.
Liskov-Substitutionsprinzip (LSP)
Jede übergeordnete Klasse sollte durch eine Unterklasse ersetzbar sein und dabei ihr Verhalten beibehalten. Das Änderungsprinzip steht im Einklang mit dem OCP-Prinzip, um sicherzustellen, dass die geerbte Klasse das Verhalten der übergeordneten Klasse nicht beeinflusst.
Interface Separation Prinzip (ISP)
Das ISP-Prinzip konzentriert sich darauf, Schnittstellenmethoden je nach Verantwortlichkeiten in mehrere Gruppen zu unterteilen und diesen Gruppen unterschiedliche Schnittstellen zuzuordnen. Vermeiden Sie, dass der Client eine riesige und ungenutzte Schnittstelle implementiert.
Dependency Inversion Principle (DIP)
Der Zweck des DIP-Prinzips besteht darin, die von Ihnen geschriebenen Klassen von der spezifischen Implementierung zu isolieren, sodass diese Klassen von Abstraktionen oder Schnittstellen abhängen. Es fördert die schnittstellenorientierte Programmierung, die sicherstellt, dass der Code nicht eng an eine bestimmte Implementierung gekoppelt ist, wodurch die Flexibilität des bösen Systems erhöht wird.
Dependency Injection (DI) und Inversion of Control (SoC) Prinzipien
DI, SoC und DIP sind eng miteinander verbunden. DI stellt untergeordnete oder untergeordnete Klassen über Konstruktoren, Methoden oder Eigenschaften bereit. In Verbindung mit der Verwendung von DI-Prinzipien können diese untergeordneten Klassen in Schnittstellen oder abstrakte Klassen invertiert werden und bilden so ein System mit geringer Kopplung, hoher Testbarkeit und einfacher Modifikation.
ASP.NET-Entwurfsmuster:
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterungen gängiger Gestaltungsprinzipien anhand von Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!