/ / स्कैला: आयातित एक विशेषता के सभी तरीके हैं या केवल एक का उपयोग किया जाता है? - स्केल, निर्भरता-इंजेक्शन, लक्षण

स्कैला: आयातित एक विशेषता के सभी तरीके हैं या केवल एक का उपयोग किया जाता है? - स्केल, निर्भरता-इंजेक्शन, लक्षण

मैं सोच रहा हूं कि क्या सभी तरीकों से Trait एक वर्ग में आयात किया जाता है जो इसे विस्तारित करता है Trait या सिर्फ इस्तेमाल किए गए लोग?

और निर्भरता इंजेक्शन के साथ?

उत्तर:

उत्तर № 1 के लिए 1

चिह्नित विधियों को छोड़कर private हर दूसरी विधि विस्तारित इकाई के साथ उपलब्ध होगी। विस्तारित इकाई अपरिवर्तित को ओवरराइड या छोड़ने का विकल्प चुन सकती है, इस मामले में इस इकाई के बच्चों को इसका सामना करना पड़ता है।

trait A {
private def a: Int = 1 //not available
protected def b: Int = 2 //available inside extending entity
def d: Int = 3 //available everywhere
}

class B extends A {}
val x = new B()

x.a //error

x.b //error

x.d //prints 3

निर्भरता इंजेक्शन पर आ रहा है

आइए कहें कि ए और बी दो इंटरफेस या लक्षण हैं जो अभिभावक / बाल संबंध नहीं रखते हैं।

यदि आप एक इकाई को दूसरे में इंजेक्ट करते हैं। उस इकाई के सभी सार्वजनिक तरीकों को दूसरे द्वारा एक्सेस किया जा सकता है