AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi MVC: View in View einbetten -- Kommunikation?
Thema durchsuchen
Ansicht
Themen-Optionen

MVC: View in View einbetten -- Kommunikation?

Ein Thema von s.h.a.r.k · begonnen am 24. Aug 2012 · letzter Beitrag vom 27. Aug 2012
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

MVC: View in View einbetten -- Kommunikation?

  Alt 24. Aug 2012, 16:15
Hallo zusammen,

habe da mal wieder eine Frage bzgl. dem MVC Pattern. Es muss ja nicht immer sein, dass die View eine Form ist, sondern es kann ja auch gut und gerne ein Frame sein, den man später dann in eine andere Form einbetten will -- ich gehe in meinen weiteren Ausführungen von einem Frame aus, aber natürlich könnte es jede andere Komponente à la TreeView oder dergleichen sein.

Meine Controller lasse ich momentan über einen Mediator miteinander kommunizieren, sodass sich diese gar nicht erst kennen, sondern eben nur Nachrichten austauschen. Aber wie schaffe ich es das mit sinnvolle mit den Views?

Meine Idee war, dass ich einen Controller, der ein Frame als View hat, eine GetView-Methode spendiere, die über ein entsprechendes Interface definiert ist:
Delphi-Quellcode:
IFrameController = interface
  function GetView(): IFrame;
end;
So kann ich von jedem Controller die entsprechende Komponente anfordern. Aber sollte ein Controller seine View nach außen geben? Wie macht ihr das denn?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: MVC: View in View einbetten -- Kommunikation?

  Alt 26. Aug 2012, 23:02
Hat keine Ideen oder will sein Wissen mit mir teilen?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#3

AW: MVC: View in View einbetten -- Kommunikation?

  Alt 27. Aug 2012, 13:14
Na das kommt wohl drauf an, wo der View letzendlich ausgewählt wird. Wenn der Controller macht, dann bleibt dir ja nichts anderes übrig als diesen nach dem View zu fragen. Oder versteh ich grad nicht was du meinst?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: MVC: View in View einbetten -- Kommunikation?

  Alt 27. Aug 2012, 13:53
Nehmen wir ein praktisches Beispiel: eine Benutzerverwaltung. In einem Fenster soll links eine Auswahl an Nutzer stehen und rechts die Rechte für einen ausgewählten Nutzer angezeigt werden.

Nun hätte ich zwei Controller, zwei Models und zwei Views konzipiert, jeweils für den User und den Rechte-Kontext einen. Die Views wären in diesem Fall dann jeweils ein Frame, welche dann auf das Hauptformular platziert werden sollen.

Wir in dem Nutzer-Auswahl-Frame ein Nutzer selektiert, wird der User-Controller benachrichtigt und dieser sendet eine Message über das Mediator-Pattern an alle anderen Controller, die sich für die Änderung interessieren. So wird die Anzeige der Rechte aktualisiert.

Nun ist aber mein Problem, dass ich nicht so recht weiß, wie ich die einzelnen Frames auf die Main-Form klatschen soll. Klar, ich könnte es machen, wie oben beschrieben, indem ich die jeweiligen Controller nach den Views frage und diese dann entsprechend auf die Form platziere. Aber ist das ein sinvoller Weg? Gibt es andere, bessere Wege? Auf das kommt es mir gerade an.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz