Kotlin
Typensichere Builder
Suche…
Bemerkungen
Ein typsicherer Builder ist ein Konzept und keine Sprachfunktion. Daher ist er nicht streng formalisiert.
Eine typische Struktur eines typsicheren Builders
Eine einzelne Builder-Funktion besteht normalerweise aus 3 Schritten:
- Erstellen Sie ein Objekt.
- Führen Sie Lambda aus, um das Objekt zu initialisieren.
- Fügen Sie das Objekt zur Struktur hinzu oder geben Sie es zurück.
Typensichere Builder in Kotlin-Bibliotheken
Das Konzept von typsicheren Buildern ist in einigen Kotlin-Bibliotheken und -Frameworks weit verbreitet, z. B .:
- Anko
- Wasabi
- Ktor
- Spec
Builder für typsichere Baumstruktur
Builder können als eine Reihe von Erweiterungsfunktionen definiert werden, die Lambda-Ausdrücke mit Empfängern als Argumente verwenden. In diesem Beispiel wird ein Menü eines JFrame
:
import javax.swing.*
fun JFrame.menuBar(init: JMenuBar.() -> Unit) {
val menuBar = JMenuBar()
menuBar.init()
setJMenuBar(menuBar)
}
fun JMenuBar.menu(caption: String, init: JMenu.() -> Unit) {
val menu = JMenu(caption)
menu.init()
add(menu)
}
fun JMenu.menuItem(caption: String, init: JMenuItem.() -> Unit) {
val menuItem = JMenuItem(caption)
menuItem.init()
add(menuItem)
}
Mit diesen Funktionen können Sie auf einfache Weise eine Baumstruktur von Objekten erstellen:
class MyFrame : JFrame() {
init {
menuBar {
menu("Menu1") {
menuItem("Item1") {
// Initialize MenuItem with some Action
}
menuItem("Item2") {}
}
menu("Menu2") {
menuItem("Item3") {}
menuItem("Item4") {}
}
}
}
}
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow