Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#11

AW: In Form1 auf eine in DataModul definierte TAction zugreifen

  Alt 30. Aug 2014, 17:28
Wenn man die Funktionen im Datamodule hat, kann man z.B. für das Programm unterschiedliche Oberflächen verwenden
Dann stell dir einfach mal vor du würdest das Datenmodul aus einer Konsolenanwendung heraus anwenden.
In diesem Fall merkt man nämlich dass eine Actionlist oder gar ein Actionmanager keine universelle API darstellt sondern in die Welt der Benutzeroberflächen gehört.

Oder anderst formuliert:
Angenommen man hat eine VCL-Anwendung und man möchte daraus zusätzlich eine Konsolenanwendung und einen Dienst der nur über TCP/IP kommuniziert ableiten.
Man würde also die Businesslogik extrahieren und in einen eigenen Namespace legen und getrennt von den 3 Anwendungarten aufbewahren.
Datenmodule gehören zur Businesslogik (bzw. zur Datenzugriffsschicht).
Aber die Actions, ActionLists und ActionManager müsste man entfernen denn schließlich sind diese Klassen in dem Namespace "Vcl.ActnList" bzw. "Vcl.ActnMan".

Man kann auch das Model-View-Controller Entwurfsmuster heranziehen.
Wohin gehören die ActionLists?
Ich würde sagen weder ins Modell noch in die View sondern ActionLists nehmen die Aufgaben von Controllern wahr.
Die ganze Architektur der VCL ist so aufgebaut, dass Delphi Steuerelemente gleichzeitig View- und Controller-Aufgaben wahrnehmen.
Ein Delphi Formular vereinigt sowohl View als auch Controller in sich, daher sind Actionlists auf dem Formular am Besten aufgehoben.
fork me on Github
  Mit Zitat antworten Zitat