SOLID
Solid beschreibt 5 Prinzipien der objektorientierten Programmierung. Diese
können einzeln eingesetzt werden, doch zusammen führen sie zur Erstellung von
robusten und wartbaren Programmen.
Je nach Projekt kann es sinnvoll sein, die Prinzipien unterschiedlich strikt
einzuhalten.
Single Responsibility Principle (SRP)
Ziel des Single Responsibility Principle ist es, die verschiedenen Belange zu trennen (Separation of Concerns). Das heisst, eine Klasse sollte alle Sachen sammeln, welche sich aus einem bestimmten Grund ändern und nicht mehr. So hat jede Klasse nur die Verantwortung, sich um die Anforderungen einer spezifischen Sache zu kümmern.
Open/Closed Principle (OCP)
Software-Einheiten müssen erweiterbar sein (open).
Dies muss möglich sein, ohne dass die grundlegende Einheit in irgend einer Weise
verändert werden muss (closed).
Liskov Substitution Principle (LSP)
Das Ausführen einer Operation der Klasse T auf der Klasse S muss zum
gleichen Ergebnis führen wie das ausführen der Operation auf der Klasse T,
wenn die Klasse S eine Unterklasse der Klasse T ist. Ist dies nicht der
Fall, so wird das Liskovsche Substitutionsprinzip verletzt.
Dies führt dazu, dass Unterklassen ein Ist-ein-Kriterium erfüllen müssen.
Hat man die Klassen Kreis und Ellipse, so ist es planimetrisch korrekt
anzunehmen, dass ein Kreis eine Ellipse ist und deshalb eine Unterklasse von
Ellipse sein kann. Hat die Ellipse jedoch Funktionalitäten unabhängig in der X
und Y Achse skaliert zu werden, so ist ein Kreis keine Ellipse mehr, da ein
Kreis immer in beide Achsen skaliert werden muss.
Interface Segregation Principle (ISP)
Interfaces sollen so aufgeteilt werden, dass sie den Anforderungen des Clients entsprechen, sodass diese nicht Interfaces benutzen müssen, welche Methoden beinhalten, welche sie nicht benötigen.
Dependency Inversion Principle (DIP)
Module hoher Ebenen sollen nicht von Modulen tieferer Ebenen abhängen, beide sollen von Abstraktionen abhängig sein.
Diese Abstraktionen sollen nicht von Details, sondern die Details von ihnen abhängen.
Ressourcen:
Wikipedia - SOLID
Wikipedia - Prinzipien objektorientiertes Designs
Wikipedia - Single Responsibility Principle
Wikipedia - Open-closed principle
Wikipedia - Liskovsches Substitutionsprinzip
Wikipedia - Interface segregation principle
Wikipedia - Dependency inversion principle
Last updated 18 Okt. 2024, 10:59 +0200 .
Was hat dir gefallen?
Was ist schiefgelaufen