Die Handhabung von Importabhängigkeiten zwischen Paketen ist ein wichtiger Aspekt bei der Strukturierung eines
Objektmodells. Ein Paket ist von einem anderen abhängig, wenn eine seiner Klassen Beziehungen hat, die zu Klassen in
dem anderen Paket führen. Für die Beschreibung solcher Abhängigkeiten wird die Importabhängigkeit von einem Paket zu
dem Paket, von dem es abhängig ist, verwendet.
Abhängigkeiten zwischen Paketen werden durch Importabhängigkeiten ausgedrückt.
Sie entwickeln Importabhängigkeiten wie folgt:
-
Bevor Sie mit der Bearbeitung des Objektmodells beginnen, erstellen Sie einen Entwurf der Abhängigkeiten, den Sie
als Richtlinie für die Bearbeitung verwenden.
-
Verwenden Sie das fertig gestellte Modell, um die tatsächlich vorhandenen Abhängigkeiten aufzuzeigen. Dazu gehört
auch die Aktualisierung der Importabhängigkeiten im Objektmodell.
-
Wenn Sie das Modell zuvor in Pakete aufgeteilt haben, können Sie mit den Importabhängigkeiten aufzeigen, wo
Abhängigkeiten zulässig sind.
-
Wie Pakete voneinander abhängen, wirkt sich auf die Toleranz des Systems in Bezug auf Änderungen aus. Ein
Objektmodell lässt sich einfacher ändern, wenn Sie
-
die externen Referenzen auf die in den einzelnen Paketen enthaltenen Klassen so gering wie möglich halten. Wenn Sie
auf viele Klassen verweisen, kann das Paket zu viele unterschiedliche Zuständigkeiten haben und sollte deshalb auf
zwei Pakete verteilt werden.
-
dafür sorgen, dass jedes Paket nur von wenigen anderen Paketen abhängig ist.
-
jedes Paket gesondert testen. Das bedeutet, dass Sie in der Lage sein müssen, ein Paket durch Simulation des
Pakets, von dem das Paket abhängig ist, zu testen. Die Implementierung anderer vollständig oder nahezu vollständig
implementierter Pakete sollte nicht vorausgesetzt werden. Wenn Sie ein Paket gesondert testen können, wird die
Systementwicklung und -pflege für jedes Paket einfacher.
-
allgemeine Teile des Objektmodells in gesonderte Pakete stellen, von denen anderen Pakete abhängig sind. Wenn ein
solches Paket vorhanden ist, müssen Sie bei Releases extrem sorgfältig vorgehen, da sich Änderungen am Paket auf
andere Teile des Systems auswirken können.
Beispiel
Angenommen, Sie finden Gemeinsamkeiten für die Klassen Kundenanzeige und Bedieneranzeige in der
Recycling-Maschine. Sie können diese gemeinsamen Services einer neuen Klasse Anzeige zuordnen, die Sie ein neues
Paket Anzeigen stellen. Die anderen beiden Klassen können dann auf diese Klasse verweisen, um die gemeinsamen
Services zu verwenden. Da die Klassen zu zwei gesonderten Paketen gehören, sind die beiden Pakete vom neuen Paket
abhängig. Dieser Ausschluss von Redundanz impliziert, dass Änderungen an gemeinsamer Funktionalität nur an einer Stelle
vorgenommen werden müssen.
|