Java Reference
In-Depth Information
Ein guter Entwurf hat innerhalb eines Teilsystems eine starke Kohäsion und zwischen
den Teilsystemen eine schwache Kopplung (loose coupling - siehe Kapitel 1.5).
Nach dem liskovschen Substitutionsprinzip (siehe Kapitel 1.6) kann in einem poly-
morphen Programm stets eine Referenz auf ein Objekt einer abgeleiteten Klasse an
die Stelle einer Referenz auf ein Objekt der entsprechenden Basisklasse treten, wenn
die abgeleitete Klasse die Verträge (siehe Kapitel 1.7) der Basisklasse einhält.
Nach dem Open-Closed-Prinzip von Bertrand Meyer (siehe Kapitel 1.8) müssen Mo-
dule offen und geschlossen sein.
Durch die Geschlossenheit des Quellcodes bzw. des lauffähigen Codes gegenüber
Veränderungen erreicht man Robustheit und Wiederverwendbarkeit der vorhandenen
Programme in einer Bibliothek. Durch die Offenheit des Quellcodes bzw. des lauf-
fähigen Codes gewinnt man eine Wiederverwendbarkeit des vorhandenen Quellcodes
als Teil von neuen Modulen und damit eine Erweiterbarkeit des Vorhandenen.
Durch die Geschlossenheit von Spezifikationen gegenüber Veränderungen wird ihr In-
halt stabil und selbst wieder verwendbar. Durch die Offenheit von Spezifikationen ge-
winnt man ihre Wiederverwendbarkeit als Teil eines neuen Moduls.
Das Dependency Inversion-Prinzip (siehe Kapitel 1.9.1) hat zum Ziel, Abhängigkeiten
zu invertieren und betrachtet dafür die Schnittstellenproblematik in einer Hierarchie.
Durch die Einführung von Abstraktionen (Interfaces oder abstrakte Klassen) an geeig-
neter Stelle können die Abhängigkeiten in einer Hierarchie umgekehrt werden.
Inversion of Control (siehe Kapitel 1.9.2) erzeugt wie das Dependency Inversion-
Prinzip eine Umkehrung der Abhängigkeit, aber nicht in einer Hierarchie, sondern auf
derselben Ebene.
Dependency Look-Up und Dependency Injection sind Techniken, um Abhängigkeitsbe-
ziehungen zwischen Objekten zur Laufzeit mit Hilfe einer speziell dafür vorgesehenen
Instanz herzustellen. Durch den Einsatz von Dependency Look-Up (siehe Kapitel
1.10.1) sucht ein Objekt andere Objekte, die es benötigt, beispielsweise in einer Regis-
tratur. Bei Dependency Injection wird die Erzeugung von Objekten und die Zuordnung
von Abhängigkeiten an eine dritte, neutrale Partei, den sogenannten Injektor, delegiert
(siehe Kapitel 1.10.2).
Search WWH ::




Custom Search