Kotlin
Costruttori sicuri di tipo
Ricerca…
Osservazioni
Un builder sicuro per i tipi è un concetto, piuttosto che una funzionalità linguistica, quindi non è strettamente formalizzato.
Una tipica struttura di un costruttore sicuro per i tipi
Una singola funzione di generatore di solito consiste in 3 passaggi:
- Crea un oggetto.
- Esegui lambda per inizializzare l'oggetto.
- Aggiungi l'oggetto alla struttura o restituiscilo.
Costruttori sicuri di tipo nelle librerie Kotlin
Il concetto di builder sicuri per i tipi è ampiamente usato in alcune librerie e framework di Kotlin, ad es .:
- Anko
- Wasabi
- KTOR
- Spec
Costruttore di strutture ad albero sicuro per tipo
I builder possono essere definiti come un insieme di funzioni di estensione che assumono espressioni lambda con i ricevitori come argomenti. In questo esempio, viene creato un menu di un 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)
}
Queste funzioni possono quindi essere utilizzate per costruire una struttura ad albero di oggetti in modo semplice:
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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow