Also ich (und wohl einige andere hier auch) hatten mehr ein ViewModel, das als Fassade implementiert ist, im Kopf.
Dann gibt es nur noch Eigenschaften und simple Methoden
ohne Parameter:
Delphi-Quellcode:
TFooViewModel = class( TViewModel )
public
property FirstName : string;
property LastName : string;
procedure Save;
procedure Print;
end;
Jetzt können diese ViewModels mit den Forms verdrahtet werden, wobei lediglich die Eigenschaftswerte vom ViewModel an die Controls übergeben werden und umgekehrt bei Änderungen am Control diese Werte zurück zum ViewModel geschrieben werden.
Aktions-Events (Button, etc.) rufen einfach die entsprechenden Methoden des ViewModels auf.
Schon hat man das UI vom eigentlichen Code getrennt und kann das UI auch beliebig austauschen, bzw. für mehrere Plattformen anbieten.
(Wenn in der Küche jetzt nicht ein paar Gänsefüße auf mich warten würden, würde ich auch ein Beispiel-Projekt anhängen - kommt aber später noch)