Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: MVVM Framework für Delphi

  Alt 16. Jan 2015, 12:33
@Mavarik

Die Videos taugen aber nicht als sinnvolle Beispiele für MVVM.


@all

Die Diskussion gefällt mir und die genannten Gründe sind auch gut nachvollziehbar.

Aber die zu erzielenden Vorteile lassen sich evtl. auch leichter erreichen.

1) Vererbung DataObject zu BusinessObject

Ich habe in einem Framework einfache Datenobjekte deklariert. Z.B.

TDataPerson class
- Firstname
- Lastname
- Sex

und davon Businessobjekte abgeleitet

TPerson class(TDataPerson)
- FullName
- SexColorForGUI
- DataIsValid
- DoSomething(WithParam: Integer)

So habe ich klare Datenobjekte und kann die mit Eigenschaften für die BL und GUI erweitern.
Im Rahmen meiner Anwendungen hat das wunderbar funktioniert. Die Klassen selbst wurden durch das Framework erzeugt und das Framework konnte sich auch selbstständig um das Laden und Speichern der Daten sowie um die Bindung an die GUI kümmern.

Der MVVM-Ansatz soll ja das gleiche erreichen. Ok, er ist noch flexibler aber auch sehr viel aufwendiger.
[NACHTRAG: Das Binding zur GUI ist ja durch ein ViewModel in Delphi noch nicht gelöst. Das kommt ja als Aufwand sogar noch hinzu. Daher setze ich lieber auf ein Paket, das mir diesen gesamten Aufwand abnimmt.]


2) Komplett-Objekt

Grundsätzlich würde ich es auch nicht gänzlich ablehnen, Daten, Klassenlogik und GuiStatusinformationen direkt in einem Objekt unterzubringen.

Das obige Beispiel würde dann so aussehen:

TPerson class
[Data]
- Firstname
- Lastname
- Sex
[BL]
- FullName
- DataIsValid
- DoSomething(WithParam: Integer)
[GUI]
- SexColorForGUI

Das würde Delphi natürlich so nicht hergeben, aber mal als grundsätzliche Überlegung:
Man könnte Daten definieren, die von überall erreichbar sind und persistiert werden können.
Dann gäbe es Eigenschaften, die von der Buinesslogik und von der GUI aus erreichbar wären.
Und es gäbe Eigenschaften, die nur für GUI relevant und erreichbar wären.

Man müsste so nicht alles doppelt schreiben und hätte dennoch gentrennte Bereiche für verschiedene Aufgaben.



-> Also wie gesagt, die Ziele des MVVM erkenne und vertrete ich. Ich hätte aber ganz gern einen leichteren Weg dorthin.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (16. Jan 2015 um 12:40 Uhr)
  Mit Zitat antworten Zitat