zusammenfassungen/Writerside/topics/02/OOAD/DesignPrinciples.md
David Schirrmeister 73e1392286 update
2024-12-05 13:53:10 +01:00

30 lines
1.1 KiB
Markdown

# Design Principles
## [SOLID Design Principles](SOLID-Principle.md)
- Fokus auf der Erstellung von Code
- Wartbar, Robust, Wiederverwendbar
### S - Single Responsibility Principle (SRP)
- Eine Klasse sollte nur eine einzige Aufgabe / Verantwortung haben
### O - Open/Closed Principle (OCP)
- Software Komponenten sollten nur fpr Erweiterung, nicht für Modifikation offen sein
### L - Liskov's Substitution Principle (LSP)
- Basisklassen müssen komplett passend für die erbenden Klassen sein
### I - Interface Segregation Principle (ISP)
- Clients sollten nicht dazu verpflichtet werden unnötige Methoden zu implementieren
### D - Dependency Inversion Principle (DIP)
- Abhängig von Abstraktion, nicht Konkretion
## Favor Composition over Inheritance
- Vererbung ist ein offensichtlicher Weg um Code von der Basisklasse wiederzuverwenden
- Unterklassen können die Codebasis der Basisklassen nicht verkleinern
- Methoden des Interfaces müssen alle implementiert werden
### Composition
- Inheritance: _is-a relationship_
- Composition
- _contains relationship_
- Prinzip kann auch auf Aggregation angewendet werden
- ![image_374.png](image_374.png)