Servus,
ich habe bei meinem Projekt folgendes Problem:
es gibt viele "Module" die aufeinander aufbauen sollen z.B.
- ein Modul Adressverwaltung = am
- ein Modul Benutzerverwaltung = um
- ein Modul Kundenverwaltung = cm
Mit am kann der Benutzer u.a. Personen anlegen. Will der Benutzer nun einen user anlegen braucht er ja erstmal eine Person. Ist diese aber noch nicht vorhanden muss sie erstmal angelegt werden. Das selbe gilt für einen neuen Kunden. Nun wäre es ja nonsen wenn ich in jedem Modul die Erstellung einer Person implementiere. Die Module sollen sich nicht direkt "kennen" d.h. ein include von Dateien aus einem anderen Modul fällt schon mal weg.
Also habe ich mir überlegt das ganze über ein Observe Pattern zu realisieren. Mich stört aber das bei der Kommunikationen zwischen den Modulen jede Menge Funktionsaufrufe stattfinden (durch das Pattern bedingt) und somit die Fehlerfindung nicht grade leichter wird.
Meine nächste Idee ist also von den Modulen weg zu gehen und Atomare Actions (aa) zu benutzen: Die Aktion Person anlegen besteht z.B. aus den drei aa's Formular zeigen, Daten speichern und Bestätigung zeigen. Jede aa arbeitet für sich alleine und legt ihre Daten in einem Zwischenspeicher ab von wo andere aa's die Ergebnisse weiter verarbeiten können. Die Abfolge der aa's wird prinzipiell in einer XML Datei festgelegt und je nach Kontext abgearbeitet. Wenn also schon eine Person existiert dann werden die aa's für das anlegen der Person nicht abgearbeitet sondern übersprungen. Die Abfolge der aa's soll Baumartig sein, da es durchaus sein kann das man "Kunde anlegen" auch in einer anderen Aktion verwenden will.
Soweit so gut... nun zu meinen Fragen:
1.) Was haltet ihr davon? Gibt es Alternativen?
2.) Wie könnte man die Klassen definieren um das ganze abzubilden?
Mein erster Ansatz für das Klassenmodell wäre eine Klasse ActionContainer welcher Actions enthalten kann. Davon abgeleitet die Klasse Actions, welche die eigendliche aa ist => also haben wir wieder eine Baumstrucktur. Aber irgendwie komm ich nicht mehr so recht weiter...
ich habe bei meinem Projekt folgendes Problem:
es gibt viele "Module" die aufeinander aufbauen sollen z.B.
- ein Modul Adressverwaltung = am
- ein Modul Benutzerverwaltung = um
- ein Modul Kundenverwaltung = cm
Mit am kann der Benutzer u.a. Personen anlegen. Will der Benutzer nun einen user anlegen braucht er ja erstmal eine Person. Ist diese aber noch nicht vorhanden muss sie erstmal angelegt werden. Das selbe gilt für einen neuen Kunden. Nun wäre es ja nonsen wenn ich in jedem Modul die Erstellung einer Person implementiere. Die Module sollen sich nicht direkt "kennen" d.h. ein include von Dateien aus einem anderen Modul fällt schon mal weg.
Also habe ich mir überlegt das ganze über ein Observe Pattern zu realisieren. Mich stört aber das bei der Kommunikationen zwischen den Modulen jede Menge Funktionsaufrufe stattfinden (durch das Pattern bedingt) und somit die Fehlerfindung nicht grade leichter wird.
Meine nächste Idee ist also von den Modulen weg zu gehen und Atomare Actions (aa) zu benutzen: Die Aktion Person anlegen besteht z.B. aus den drei aa's Formular zeigen, Daten speichern und Bestätigung zeigen. Jede aa arbeitet für sich alleine und legt ihre Daten in einem Zwischenspeicher ab von wo andere aa's die Ergebnisse weiter verarbeiten können. Die Abfolge der aa's wird prinzipiell in einer XML Datei festgelegt und je nach Kontext abgearbeitet. Wenn also schon eine Person existiert dann werden die aa's für das anlegen der Person nicht abgearbeitet sondern übersprungen. Die Abfolge der aa's soll Baumartig sein, da es durchaus sein kann das man "Kunde anlegen" auch in einer anderen Aktion verwenden will.
Soweit so gut... nun zu meinen Fragen:
1.) Was haltet ihr davon? Gibt es Alternativen?
2.) Wie könnte man die Klassen definieren um das ganze abzubilden?
Mein erster Ansatz für das Klassenmodell wäre eine Klasse ActionContainer welcher Actions enthalten kann. Davon abgeleitet die Klasse Actions, welche die eigendliche aa ist => also haben wir wieder eine Baumstrucktur. Aber irgendwie komm ich nicht mehr so recht weiter...
Kommentar