Content
Auf eine eine Implementierung programmieren
Eine Implementierung ist eine Konkrete Klasse, sie kann direkt instanziert werden.
Hund h = new Hund();
h.bellen();
Auf eine Schnittstelle programmieren
Hier ist nicht ein Interface gemeint, sondern ein Supertyp, also eine Abstrakte Klasse oder ein Interface
Tier h = new Hund();
h.gibLaut()
new Hund
ist eine Konkrete Implementierung, dies kann dann wieder gekapselt werden, siehe Factory(-Method) Pattern.
Entwurfsprinzipien
- Ziehe Komposition der Vererbung vor
- Programmiere immer auf eine Schnittstelle
- Identifierzieren Sie die Aspekte Ihrer Anwendung, die sich ändern können, und trennen Sie sie von denen, die konstant bleiben.