# Design-Frage: Wie viele Fassaden?



## SamHotte (3. Mrz 2006)

Moin,

Forumsuche gab leider keine Antwort, da es wohl wieder mal eine Sache der persönlichen Sympathie ist 

Folgende Situation: ich habe eine Anwendung, die auf momentan 18 verschiedene Datenbankrelationen zugreift. Die Relationen sind einerseits zum reinen Daten-halten, ein paar (mom. 5) stellen n:m-Beziehungen zwischen je zwei anderen dar.
Momentan habe ich für jede Relation ein package, in dem eine Klasse für das einzelne Datenobjekt (entspricht einem Datensatz), eine Klasse für die SQL-Zugriffe (lesend und schreibend), eine Klasse für das ganze Modell (Listen, Bäume) und Hilfsklassen (z.B. typisierte ArrayListen - ich muss arbeitgeberbedingt noch JDK 1.4 einsetzen) definiert werden.

Bislang greife ich von überall her direkt auf diese Klassen zu. Da ich aber nun die GUI auswechseln muss/möchte (als: Swing, neu: SWT), wäre eine vorhergehende Kapselung m. E. sinnvoll. Daher wollte ich zwischen Modell und Control/View eine Fassade "einziehen". Die Frage ist nun: soll ich eine einzige Fassadenklasse für alles bauen (werden dann vermutlich >50 Methoden), oder baue ich für jede Relation eine eigene Fassade?

Wäre für Erfahrungen und Tipps dankbar!


----------



## Gast (6. Mrz 2006)

Mach dir doch ne Facade die dir Modelle deiner DB Objekte liefert und speichern kann. Die GUI arbeitet dann nur mit dieser Facade.


----------



## SamHotte (6. Mrz 2006)

Nicht wirklich, denn dann würde die GUI weiterhin direkt auf den Modellen arbeiten (nach einem einmaligen getModell()). Entweder hab ich das Muster nicht verstanden, oder so wäre es keine Hilfe.


----------



## SnooP (7. Mrz 2006)

Also ich würde für jede Relationsklasse eine Fassade bauen und dann eine große Fassade die wiederum auf die einzelnen Fassadenklassen zugreifen kann.. um das hübsch zu kapseln... wenn du nachher zuviele einzelne Fassadenklassen ansprechen musst über die gui kommt man gerne mal durcheinander - da ist ne größere Fassade sinniger imho (hab ich zumindest auch schon so gemacht *g*).


----------



## SamHotte (23. Mrz 2006)

Alles klar, danke! Langsam wird's wieder ein bischen übersichtlicher in meinem *%$&§!Code


----------

