Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.298 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Spring4d, Marshmallow, Änderungen überwachen

  Alt 30. Nov 2016, 10:17
Hi,

ich bin grad an einem größeren Projekt, das mittels Oberserver-Pattern eben diese Trennung vollzieht.

Dazu hab ich mir erstmal, entsprechend der DB-Struktur, Datenobjekte geschrieben.

Ich nehm jetzt mal eine Tabelle aus dem Projekt als Beispiel: Repositories

Dazu hab ich mir 2 Klassen geschrieben (TRepository und TRepositories), die mir die Datenhaltung und
die Bearbeitungsmöglichkeiten und das Handling in der DB abnehmen.

Zusätzlich hab ich bei TRepository (quasi Einzeldatensatzbearbeitung/Detailansicht) eine Methodenliste
sowie die 3 Methoden Register, Unregister und Notify implementiert.

Wenn ein anderes Object sich bei TRepository registriert, wird es bei Änderungen entsprechend Benachrichtigt.

Bei TRepositories (quasi eine Liste der Datensätze) hab ich das gleiche, sowie zusätzlich
eine Methode, so das sich die Liste bei einer Detailansicht als Beobachter registrieren kann.


UI-Element hab ich im Moment ein Listview, das sich bei TRepositories als Beobachter registriert hat. Wenn also die Liste (TRepositories) sich nun ändert, wird der Listview benachrichtig und zeichnet sich neu.
Umgekehrt ist natürlich TRepositories auch wieder bei der Listview registriert um z.B. entsprechende
Änderungen an der Sortierung zu ermöglichen.

Analog dazu soll die Detail-Geschichte laufen. Hier kann sich (neben dem entsprechenden Formular) auch die Liste (TRepositories) beim Detail (TRepository) registrieren. Sobald sich der Datensatz ändert wird das Formular und die Liste benachrichtigt und können entsprechende Aktionen durchführen.
Uwe
e=mc² or energy = milk * coffee²

Geändert von Ghostwalker (30. Nov 2016 um 10:25 Uhr)
  Mit Zitat antworten Zitat