Wäre über eine Factory ggf. möglich sich die Singleton-Instanz geben zu lassen.
Waere moeglich, oder ist State-of-the-Art die Situation zu behandeln?
Wer gibt denn dann diese Controller-Instanzen raus? Main-Objekt haelt sie, alle neben-units (unter-units), die sich gegenseitig brauchen, holen sich Interfaced von Main dann die Nachbar-Controller-Instanz?
Bringt mir das seitens der
ASM-Zugriffe nachher tatsaechlich Vorteile?
wie man den entsprechenden Teil (Controller, Presenter, ViewModel) erstellt
Um ViewModel, Model, View oder Presenter geht es mir gar nicht. Dass sich diese Zusammenhaenge aus dem jeweiligen Pattern ergeben, ist schon klar.
Es geht nur um das
ueberliegende Controller(-artige) Objekt.
Grundsätzlich möchte ich aber von Singleton oder globaler Variable abraten, denn das führt die Verwendung des Patterns ad absurdum.
Okay, ich hab anscheinend irgendwas verpasst. Reden wir mal ueber MVC explizit:
Von
diesem Beitrag:
Main project file:
Delphi-Quellcode:
var
Model: TModel;
Controller: TController;
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Model := TModel.Create;
Controller := TController.Create(Model, MainForm);
Application.Run;
Controller.Free;
Model.Free;
end.
Es bleibt - wie bei allen Beispielen die ich finde - unklar,
wie auf benachbarte Controller-Instanzen zugegriffen wird.
Delphi-Quellcode:
var
ApfelModel: TModel;
ApfelController: TController;
SaftpresseModel: TModel;
SaftpresseController: TController;
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
ApfelModel := TModel.Create;
ApfelController := TController.Create(ApfelModel, MainForm);
SaftpresseModel := TModel.Create;
SaftpresseController := TController.Create(SaftpresseModel, MainForm);
Application.Run;
ApfelController.Free;
ApfelModel.Free;
SaftpresseController.Free;
SaftpresseModel.Free;
end.
Alles klar, aber inhaltlich benoetigt ist
Apfel uses Saftpresse
.
Und nun? Die beiden Controller liegen ja nur als fluechtige Instanzen so nebeneinander rum.