Ich arbeite viel mit Daten aus anderen Quellen, das sind relationale Datenbanken wie auch LDAP-Verzeichnisdienste oder Daten die mir via REST-API zur Verfügung stehen.
Zur Verarbeitung dieser Daten habe ich immer wieder dieselben Aufgaben:
Dafür habe ich mir eine Basis-Klasse geschrieben die über getter/setter die Manipulationen abfängt und so Änderungen "sichtbar" machen kann, was sonst mit einfachen public Eigenschaften nicht möglich wäre.
Gibt es eigentlich einen generischen Ansatz für dieses "Problem"? Ein Pattern und ggf. auch schon fertige Implementationen dazu?
Ich bin etwas an meine Grenzen gestoßen als ich feststellen musste das nicht alle der zu verarbeitenden Daten Entitäten im Sinne von einfachen Datentypen darstellen, sondern teils selbst auch Arrays oder Objekte sein können. Hier dann die Manipulationen zu erkennen war aufwändig.
Gern stelle ich "meine" Lösung des Problems mal vor, wenn das von Interesse ist oder hilft meine Fragen zu beantworten. Vorerst sehe ich das genannte aber als global gültiges Problem an, denn das dürfte ja praktisch jeder Entwickler schonmal gehabt haben.
Zur Verarbeitung dieser Daten habe ich immer wieder dieselben Aufgaben:
- Daten aus dem Fremdsystem lesen (ggf. nur ein Subset davon nutzen)
- Daten mit meinen Methoden verarbeiten und ggf. manipulieren
- Daten in das Fremdsystem zurückschreiben
- In bestimmten Fällen auch neue Daten im Fremdsystem anlegen
Dafür habe ich mir eine Basis-Klasse geschrieben die über getter/setter die Manipulationen abfängt und so Änderungen "sichtbar" machen kann, was sonst mit einfachen public Eigenschaften nicht möglich wäre.
Gibt es eigentlich einen generischen Ansatz für dieses "Problem"? Ein Pattern und ggf. auch schon fertige Implementationen dazu?
Ich bin etwas an meine Grenzen gestoßen als ich feststellen musste das nicht alle der zu verarbeitenden Daten Entitäten im Sinne von einfachen Datentypen darstellen, sondern teils selbst auch Arrays oder Objekte sein können. Hier dann die Manipulationen zu erkennen war aufwändig.
Gern stelle ich "meine" Lösung des Problems mal vor, wenn das von Interesse ist oder hilft meine Fragen zu beantworten. Vorerst sehe ich das genannte aber als global gültiges Problem an, denn das dürfte ja praktisch jeder Entwickler schonmal gehabt haben.
Kommentar