खोज…


टिप्पणियों

एक प्रकार-सुरक्षित बिल्डर एक अवधारणा है, बजाय एक भाषा सुविधा के, इसलिए यह कड़ाई से औपचारिक नहीं है।

टाइप-सेफ बिल्डर की एक विशिष्ट संरचना

एक एकल बिल्डर फ़ंक्शन में आमतौर पर 3 चरण होते हैं:

  1. कोई वस्तु बनाएँ।
  2. ऑब्जेक्ट को इनिशियलाइज़ करने के लिए लैम्बडा को एक्सेक्यूट करें।
  3. ऑब्जेक्ट को संरचना में जोड़ें या इसे वापस करें।

कोटलिन पुस्तकालयों में टाइप-सुरक्षित बिल्डरों

टाइप-सेफ बिल्डरों की अवधारणा व्यापक रूप से कुछ कोटलिन लाइब्रेरी और फ्रेमवर्क में उपयोग की जाती है, उदाहरण के लिए:

  • Anko
  • वसाबी
  • 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