Grundprinzipien der objektorientierten Programmierung
Loose Coupling – Schwache Kopplung
- Definiert, wie sehr Systembesstandteile voneinander abhängen
- Klassen sollten so strukturiert sein, dass sie auf möglichst wenige andere Klassen angewiesen sind, um funktionieren zu können
- Erhöht Wiederverwendbarkeit der Klassen enorm!
sinnvolle Abhängigkeiten
- Stark zusammengehörende Code-Teile sollten zusammengefasst werden
- Nicht zusammenhängende Code-Teile sollten ausgelagert werden (don’t do too much!)
- Veränderungen einer Klasse sollten im Optimalfall keine Änderung an weiteren Klassen hervorrufen
Information Hiding – Geheimnisprinzip
- Jede Klasse gibt nur das nötigste nach außen und „weiß“ selbst auch nur das, was sie zum funktionieren wissen muss
- Keine Interna werden nach außen getragen. Ich muss nicht wissen, dass intern ein Stack als Datenstruktur verwendet wird, um die Klasse zu benutzen
- Änderungen innerhalb der Klasse selbst sollten nach außen nicht sichtbar sein, da andere Klassen nur das nötigste von ihr kennen
- Spielt auf sinnvolle Verwendung von public / private / protected an
Homogenität
- Vergleichbare Probleme sollten mit vergleichbarer Komplexität gelöst werden
- Wiederverwendung von bereits bestehenden Lösungen soweit wie möglich
- Leitlinie: „Erwartungshaltung“ anderer Teammitglieder sollte erfüllt werden, was den Umfang der Realisierung einer Klasse angeht
Don’t repeat yourself – Redundanzfreiheit
- Jede Funktionalität ist an genau einer Stelle vorhanden und wird – bei Bedarf – von anderen Systembestandteilen verwendet (Don’t reinvent the wheel)
- Sollte Code mehrfach verwendet worden sein (Copy & Paste aus Faulheit), wird eine neue Funktion daraus erschaffen, die dann von allen Teilen aus aufgerufen wird
- Vorteil: Bei einem Fehler muss nur an einer Stelle korrigiert werden und alle anderen, davon abhängigen Teile sind automatisch „gefixt“
Weitere Posts:
Dieser Beitrag wurde unter
Software Engineering,
webdev veröffentlicht. Setze ein Lesezeichen auf den
Permalink.
4 Antworten auf Grundprinzipien der objektorientierten Programmierung