AdLerDokumentation Help

Presentation Builder

Um die Initialisierung des in der AdLer Engine verwendeten MVC Musters in der Adapterschicht (siehe Gesamtarchitektur) zu vereinfachen, wird ein sog. Presentation Builder verwendet. Dieser folgt dem Builder Design Pattern. Dabei definiert der Builder eine feste Liste zu erzeugender Objekte.

Image engine presentation builder

Builder

Der Builder ist zuständig für die Erzeugung folgender Komponenten des MVC-Patterns: ViewModel, Controller, Presenter und View. Alle aufgezählten Komponenten bis auf das ViewModel sind optional und können bei der Erzeugung des Builders entfallen, da immer ein ViewModel benötigt wird. Für optionale Komponenten wird als Template-Argument undefined übergeben. Nach dem Build-Prozess können die einzelnen Komponenten über Getter-Methoden abgerufen werden.

Einbindung in React

Für die Verwendung eines Builders in einer React Komponente existiert die Custom Hook useBuilder. Sie nimmt als Parameter einen Buildertyp und als Generic die erwarteten Typen für ViewModel und Controller entgegen. Sie gibt ein Tupel aus ViewModel und Controller zurück. Die useBuilder Hook liefert keine Referenz auf den erstellten Presenter, da die View-Komponenten in React nicht direkt mit ihren Presentern kommunizieren. Da die useBuilder Hook intern mit useEffect arbeitet, kann es sein, dass die Buildprodukte nicht im selben Frame vorliegen, wenn die Hook das erste Mal aufgerufen wurde. Es ist deshalb zu empfehlen, die Komponente ggf. nicht zu rendern, falls sie vom Controller oder Daten des ViewModels abhängig ist.

Presentation Director

Die Reihenfolge der Instanziierung der MVC-Komponenten durch den Presentation Builder erfolg durch den Presentation Director. Der Director führt folgende Anweisungen in fester Reihenfolge aus:

  1. setze übergebenen Builder zurück

  2. erzeuge ViewModel

  3. erzeuge Controller

  4. erzeuge View

  5. erzeuge Presenter

Last modified: 19 September 2024