Interface-Generierung
LF‑ET bietet für Java auch die Möglichkeit, die Steuerlogik der Entscheidungstabelle über ein generiertes Interface von einer konkreten Implementierung zu entkoppeln.
Um die Interface-Generierung zu verwenden, muss im Java-Prolog zur Entscheidungstabelle der Java-Generierungsparameter $$InterfaceName definiert sein, wie zum Beispiel:
// $$InterfaceName=IAmpelSchaltung oder // $$InterfaceName=I$$etname.
Zuerst wird das Interface generiert:
-
Zu jedem Bedingungswert wird eine Methode definiert: public boolean isBedingungsWert(), wobei die Methodennamen automatisch aus der Entscheidungstabelle abgeleitet werden
-
Auch zu jedem Aktionswert wird eine Methode definiert: public void doAktionsWert()
-
Jede Methode erhält automatisch einen JavaDoc-Kommentar, der aus allen verfügbaren Informationen aus der Entscheidungstabelle (Titel, Symbole, Texte, etc.) zusammengestellt wird
-
Zusätzlich wird noch für den Trace-Code eine Methode definiert: public void doTrace(String dtName, String version, int rules, int rule)
Anschließend wird die Klasse mit der eigentlichen Steuerlogik (Regelmodul, IF-ELSE-Regelbaum) generiert:
-
Die Klasse enthält nur eine Methode public void execute(InterfaceName varName), der Name des Interface-Parameters kann bei Bedarf mit dem Java-Generierungsparameter $$InterfaceVarName individuell angepasst werden
-
Der IF-ELSE-Regelbaum benutzt nur die im generierten Interface definierten Methoden
Der Sinn dieser Generierungsart: Weder die Entscheidungstabelle, noch das generierte Interface, noch das generierte Regelmodul enthalten anwendungsspezifischen Sourcecode!
Das bedeutet:
-
Maximale Entkopplung der Steuerlogik (d.h. Entscheidungstabelle) von einer konkreten Implementierung
-
Mehrere Java-Implementierungen derselben Logik sind möglich (z.B. in unterschiedlichen Projekten), Basis für jede Implementierung ist immer das generierte Interface
Wenn Sie diesen Abschnitt mit LF‑ET durcharbeiten wollen, dann beachten Sie bitte dazu die Hinweise und Tipps für Java.
Inhalt dieses Kapitels: