2012-03-19 16 views
5

के बीच अंतर मैं जानना चाहता हूं कि क्लास स्निपेट और लिफ्ट में ऑब्जेक्ट स्निपेट के बीच सटीक अंतर क्या है।एक वर्ग स्निपेट और ऑब्जेक्ट स्निपेट

अगर मैं

class Foo { 
    var a: String 
    def render(n:NodeSeq) = { 
    <h3> you chose {a} </h3> 
    } 
} 

और

object Bar { 
    var b: String 
    def render(n:NodeSeq) = { 
    <h3> you chose {b} </h3> 
    } 
} 

क्या उन दोनों के बीच ठोस अंतर है, है a और b एक अलग व्यवहार है। simply lift में यह कहा जाता है कि

इस मामले में, टुकड़ा एक वस्तु सिंगलटन है, क्योंकि यह किसी भी निर्माता पैरामीटर नहीं लेने के लिए और कोई उदाहरण variabled है करता है।

तो इसका मतलब यह है कि प्रत्येक उपयोगकर्ता के लिए, Bar ही होगा?

मुझे पता है कि यह एक noob सवाल है, लेकिन मैं इस पर बहुत स्पष्ट होने की जरूरत है और मैं अच्छी तरह से वस्तुओं और स्निपेट में कक्षाओं के बीच का अंतर मेल नहीं खाते।

उत्तर

8

this page देखें।

असल में, प्रत्येक http अनुरोध के लिए फू का एक नया उदाहरण बनाया जाएगा (इसलिए एक ही समय में कई मौजूदा होंगे), लेकिन बार का केवल एक उदाहरण एक ही समय में मौजूद होगा।

+0

धन्यवाद, यह वास्तव में मुझे बहुत कम संकेत है! –

-2

एक वस्तु एक वर्ग का एक उदाहरण है। इस मामले में आप सीधे एक वस्तु को परिभाषित कर सकते हैं। चलिए कहते हैं कि सी ++/जावा आदि आपको पहले कक्षा बनाना है और फिर इसे तुरंत चालू करना है। यह आसान बनाता है यानी जब आपको सिंगलटन क्लास बनाने की आवश्यकता होती है, जिसे आपको अन्य ऑब्जेक्ट उन्मुख भाषाओं में संभालने के लिए किसी प्रकार का डिज़ाइन पैटर्न करने की आवश्यकता होती है जो ऑब्जेक्ट निर्माण का समर्थन नहीं करती है।

दोनों को आगे बढ़ाने के लिए कक्षा को एक घर का ब्लूप्रिंट और वस्तु वास्तविक घर पर विचार करें।

+0

हाय, मैं वस्तु और वर्ग की अवधारणा को समझने, यह सिर्फ है कि, के टुकड़े और liftweb के लिए आवेदन किया, मैं क्या उपयोगकर्ता हो जाता है में खो हो रही है। –

+0

मुझे यकीन नहीं है कि मैं अनुसरण करता हूं। मान लें कि आप सभी प्रासंगिक कोड में चिपकाए गए हैं, यह दोनों के बीच का अंतर है। आपको उपयोग करने के लिए तत्काल आवश्यकता है, और दूसरा जो आप नहीं करते हैं। वे अलग-अलग व्यवहार करेंगे क्योंकि कार्यों को अलग-अलग परिभाषित किया जाता है। लेकिन हाँ बार में हर एक्सेस एक ही कोड को कॉल करेगा। यह एक सिंगलटन है। फू के दो अलग-अलग उदाहरणों पर एक ही विधि को कॉल करने से एक ही कोड चलाया जाएगा, केवल अलग-अलग "इस" संदर्भों के साथ –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^