Donnerstag, 5. November 2009

Fluent Interface

Bin mal wieder über das Thema Fluent Interface Pattern gestolpert. Kurz ausgedrückt, werden mit dem Fluent Interface Pattern Methodenaufrufe in Fließtext gebracht. Beispiel:

Date date = CalendarUtils.add(5).days().and(10).hours().to(date);

Das fühlt sich beim Programmieren anfänglich etwas ungewohnt an, gefällt mir persönlich aber sehr gut. Auf den ersten Blick sieht es einfach aus, selbst solch ein Schnittstellenmodell zu bauen, was bei zunehmender Komplexität jedoch täuscht. Will man den Satzbau beeinflussen, also sicherstellen, dass alle geforderten Methoden aufgerufen werden, um die Objektinstanz fertig zu stellen, kann leider nicht immer nur ein und das gleiche Objekt zurückgegeben werden. Dann nämlich werden Mediatoren benötigt, die die nächsten Satzschnipsel anbieten. Das ist nicht schwierig, wird aber schnell unübersichtlich.

Eine sehr gelungen API, die in jedem Fall einen Blick wert ist, ist die API FEST Reflection Module. Die Beispiele auf der Projektseite veranschaulichen auch gleich, was man mit dem Fluent Interface Pattern so alles anstellen kann.

Ein Eclipse Plugin namens Fluent Interface Modeller, dass eventuell beim Aufbau eigener Fluent Interface Klassen helfen kann gibt es hier. Testen konnte ich dieses allerdings noch nicht.

Zum in das Thema hineinlesen eignet sich ansonsten noch ein Artikel vom Heise Verlag.