Hi.
Es ist völlig "normal", dass Klassen bzw. Objekte untereinander abhängig sind. Neben der Vererbung gibt es Assoziationen und Aggregationen. Im Falle eines Navigationsbaum macht es Sinn, diesem ein Sitemap-Objekt, also den eigentlichen Baum zu übergeben. Ich hab z.B. in einem System pro Menü ein Objekt und alle bekommen das gleiche Sitemap-Objekt, sowie die Information, welcher Knoten gerade "aktiv" ist. Um diese elemente dann der Seite beizufügen bietet sich das Decorator-Pattern an. Dass heißt, die Seite wird mit den einzelnen Menüs "dekoriert", ihre Schnittstelle ändert sich dadurch jedoch nicht.
Das Sitemap-Objekt braucht natürlich die Daten oder Zugang zu den Daten. Dazu gibt es unzählige Möglichkeiten:
- MySQL-Objekt übergeben
- Eigenes DAO übergeben, dass die Zugriffe kapselt
- Übergabe der Daten als DataTransferObject oder sowas...
- ...
Die Autonomie der Objekte kannst du also knicken. Wichtiger ist, dir klar zu machen, wie die Abhängigkeiten aussehen, wie die Zuständigkeiten aussehen, die Schnittstellen etc.
Basti |