Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#20

AW: DSharp - Data bindings, MVVM und mehr für Delphi 2010 und höher

  Alt 5. Dez 2011, 16:18
Möglich wäre das, aber das würde einen größeren Eingriff in die Funktionsweise des DI Containers erfordern. Und das nur, um sich nen 3-Zeiler zu sparen für den Fall, dass man ebend in dem Interface für das ViewModel keine Methoden und/oder Eigenschaften hat, halte ich für keinen guten Weg.

Ich denke, deine Frage zielte auf etwas anderes:
Es spricht nichts dagegen, komplett auf das Interface zu verzichten in diesem simplen Fall. Im Calculator Beispiel würde das dann bedeuten, du schreibst einfach Application.Start<TCalculatorViewModel>; Die Registrierung der Klasse passiert in diesem Fall durch das [InheritedExport] auf TViewModelBase.

Wenn du dir das ContactManager Sample anschaust, wirst du aber sehen, warum das Interface in weniger trivialen Anwendungen fast unverzichtbar ist. Dort hast du nämlich die Kontaktübersicht, welche als Abhängigkeit die Kontaktdetails hat (weil es sie ja aufrufen muss). Wäre dort kein Interface für die Details vorhanden, hättest du eine Abhängigkeit dieser 2 Models. Mit dem Interface kannst du einfach das DetailViewModel ausmocken und die Übersicht testen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 5. Dez 2011 um 16:20 Uhr)
  Mit Zitat antworten Zitat