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

1.1 KiB

Design Principles

SOLID Design Principles

  • 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