30 lines
1.1 KiB
Markdown
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
|
|
- 
|
|
|