Builder
Das kleine Groovy-Grails-Lexikon
Builder (deutsch auch „Erbauer“) sind Klassen, deren Zweck darin besteht, Instanzen einer anderen (oder auch der eigenen) Klasse zu „bauen“, d.h. sie zu erzeugen und mit bestimmten Eigenschaften zu versehen.
In Groovy beziehen Builder-Klassen ihren besonderen Reiz daraus, dass sie die dynamischen Fähigkeiten der Sprache elegant nutzen können, um auch den Aufbau komplexer hierarchischer Strukturen in übersichtlicher Weise zu gestatten.
Die Groovy-Standardbibliothek enthält zahlreiche Beispiele von Builder-Klassen, darunter den MarkupBuilder für den Aufbau von XML- und HTML-Dokumenten, den SwingBuilder für den Aufbau von Swing-Oberflächen und den NodeBuilder für den Aufbau von Hierarchien aus Node-Objekten.
Folgendes Beispielskript, das einen MarkupBuilder nutzt, generiert eine HTML-Seite mit einer sortierten Aufzählung aller aktuellen Umgebungsvariablen und deren Werten und gibt das Ergebnis auf der Konsole aus.
pageTitle = "Umgebungsvariablen"
page = new groovy.xml.MarkupBuilder()
page.html {
head {
title pageTitle
}
body {
h1 pageTitle
ul {
System.getenv().entrySet().
sort{x,y -> x.key<=>y.key}.each {
li "$it.key = $it.value"
}
}
}
}
println page
Die Funktionalität dieses Beispiels entspricht dem Beispiel zu Template.
