Gene­rierungs­variante 1: Interface und Regel-Modul (emp­foh­len)

LF‑ET bie­tet für einige Programmiersprachen auch die Möglichkeit, die Steuerlogik der Ent­schei­dungs­ta­belle über ein generiertes Interface von einer konkreten Implementierung zu entkoppeln.

Diese Gene­rie­rungs­variante ermöglicht die Gene­rie­rung von Programmcode, ohne dass in den Ent­schei­dungs­ta­bellen selbst zwingend irgend­welche programmspezifischen Angaben gemacht werden müssen.

Bei dieser Gene­rie­rungs­variante wird zuerst das Interface ge­ne­riert:

  • Zu jedem Bedingungswert wird eine "is-Methode" definiert

  • Zu jedem Aktions­wert wird eine "do-Methode" definiert

  • Die Methodennamen werden auto­ma­tisch aus den Titeln und Symbolen der Bedin­gungs- und Aktions­werte abgeleitet

  • Jede Methode erhält auto­ma­tisch einen Kommentar, der aus allen verfügbaren Informationen aus der Ent­schei­dungs­ta­belle (Titel, Symbole, Texte, etc.) zusammengestellt wird

  • Zu­sätz­lich wird noch für den Trace-Code eine Methode definiert

Anschließend wird die Klasse mit der eigentlichen Steuerlogik (Rules-Engine, Regel­modul) ge­ne­riert:

  • Die Klasse enthält nur eine Methode "execute" mit dem Interface als Parameter

  • Die Rules-Engine benutzt nur die im gene­rier­ten Interface definierten Methoden

    Eine gute Einführung dazu beginnt z.B. hier: Java aktivieren und einrichten

Vorteile

  • Weder die Ent­schei­dungs­ta­belle, noch das gene­rier­te Interface, noch das gene­rier­te Regel­modul, enthalten anwendungsspezifischen Source­code

  • Maximale Entkopplung der Steuerlogik (d.h. Ent­schei­dungs­ta­belle) von einer konkreten Implementierung

  • Mehrere Implementierungen derselben Logik sind möglich (z.B. in unter­schied­lichen Projekten oder für unter­schied­liche Technologien), Basis für jede Implementierung ist immer das gene­rier­te Interface