수색…


비고

유형 안전 빌더 는 언어 기능이 아닌 개념이므로 엄격하게 형식화되지는 않습니다.

유형 안전 빌더의 일반적인 구조

단일 빌더 기능은 일반적으로 3 단계로 구성됩니다.

  1. 개체를 만듭니다.
  2. 객체를 초기화하려면 람다를 실행하십시오.
  3. 객체를 추가하여 구조화하거나 반환하십시오.

Kotlin 라이브러리의 유형 안전 빌더

타입 안전 빌더의 개념은 몇몇 Kotlin 라이브러리와 프레임 워크에서 널리 사용됩니다. 예 :

  • 안코
  • 와사비
  • 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