2013-06-14 14 views
6

मैं Scalatra के लिए दस्तावेज़ से अधिक रहा हूँ और एक दिलचस्प मैं अभी तक पर नहीं देखा है वाक्य रचना के लिए कोड का स्निपेट देखा:स्काला विशेषता वाक्य रचना

trait DatabaseSessionSupport { this: ScalatraBase => 
    import DatabaseSessionSupport._ 

सब कुछ: http://www.scalatra.org/2.2/guides/persistence/introduction.html

विशेष रूप से, यह इस सा यहां this: ScalatraBase => सेगमेंट को छोड़कर समझ में आता है। यहां क्या महत्व है? क्या यह नीचे या पूरे विशेषता के लिए आयात के लिए विशिष्ट है?

उत्तर

5

इसे "स्व-प्रकार एनोटेशन" कहा जाता है और इसके लिए यह आवश्यक है कि trait DatabaseSessionSupport किसी तत्काल कक्षा में किसी भी प्रकार के साथ ("मिश्रित") के साथ ScalatraBase के साथ एक प्रकार के साथ होना चाहिए। मैंने इस विशिष्ट कोड को नहीं देखा है, लेकिन यह संभवतः तथाकथित "केक पैटर्न" का उपयोग है।

आप इस अवधारणा के कई उपचार स्टैक ओवरफ्लो में, विभिन्न ब्लॉगों में और ओडर्स्की एट द्वारा क्लासिक पेपर में पा सकते हैं। अल। शीर्षक "Scalable Component Abstractions।"

+0

ग्रेट उत्तर, बेहद मदद करता है। धन्यवाद। – randombits

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