update
This commit is contained in:
29
Writerside/topics/OOAD/DesignPrinciples.md
Normal file
29
Writerside/topics/OOAD/DesignPrinciples.md
Normal file
@ -0,0 +1,29 @@
|
||||
# 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
|
||||
- 
|
||||
|
Reference in New Issue
Block a user