Kotlin
Тип-безопасные строители
Поиск…
замечания
Тип-безопасный строитель представляет собой концепцию, а не функцию языка, поэтому она не является строго формализованной.
Типичная структура типа безопасного строителя
Одна функция-строитель обычно состоит из трех шагов:
- Создайте объект.
- Выполните lambda для инициализации объекта.
- Добавьте объект в структуру или верните его.
Тип-безопасные сборщики в библиотеках Котлин
Концепция типов безопасных строителей широко используется в некоторых библиотеках и структурах Котлин, например:
- Анко
- Wasabi
- Ktor
- спекуляция
Тип-древовидный строитель
Строителей можно определить как набор функций расширения, принимающих лямбда-выражения с приемниками в качестве аргументов. В этом примере создается меню 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)
}
Эти функции затем могут быть использованы для создания древовидной структуры объектов простым способом:
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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow