मॉड्यूल डिस्क्रिप्टर क्या है?
एक मॉड्यूल कोड का संग्रह है जो पैकेजेस में व्यवस्थित क्लासेस और स्टेटिक रिसोर्सेज (प्रॉपर्टी फाइल्स आदि) के रूप में होता है। यह बाहरी वातावरण को वह सभी जानकारी प्रदान करता है जो उस मॉड्यूल का उपयोग करने के लिए आवश्यक हो सकती है। मॉड्यूल डिस्क्रिप्टर मॉड्यूल सिस्टम का एक प्रमुख स्रोत है, और यह मॉड्यूल की रूट डायरेक्टरी में module-info.java फाइल में निर्दिष्ट मॉड्यूल डिक्लेरेशन का संकलित संस्करण है।
मॉड्यूल डिक्लेरेशन उदाहरण
module com.myproject.module1 {
requires com.myproject.module2;
exports com.myproject.project1;
exports com.myproject.project2;
}
मॉड्यूल डिस्क्रिप्टर के घटक
- module module.name: module.name नामक मॉड्यूल घोषित करता है।
- requires module.name: निर्दिष्ट करता है कि हमारा मॉड्यूल module.name पर निर्भर करता है, इस मॉड्यूल को टार्गेट मॉड्यूल में निर्यात किए गए पब्लिक टाइप्स तक पहुंचने की अनुमति देता है।
- requires transitive module.name: इस मॉड्यूल पर निर्भर करने वाला कोई भी मॉड्यूल स्वचालित रूप से module.name पर निर्भर करता है।
- exports pkg.name: हमारा मॉड्यूल पैकेज pkg.name में पब्लिक मेंबर्स को इस मॉड्यूल की आवश्यकता वाले हर मॉड्यूल के लिए निर्यात करता है।
- exports pkg.name to module.name: उपरोक्त जैसा ही, लेकिन केवल विशिष्ट मॉड्यूल्स को पैकेज pkg.name से पब्लिक मेंबर्स उपयोग करने की अनुमति देता है।
- uses class.name: वर्तमान मॉड्यूल को सर्विस class.name के लिए उपभोक्ता बनाता है।
- provides class.name with class.name.impl: class.name.impl क्लास को class.name सर्विस का कार्यान्वयन प्रदान करने वाली सर्विस के रूप में पंजीकृत करता है।
- opens pkg.name: अन्य मॉड्यूल्स को रिफ्लेक्शन का उपयोग करके पैकेज pkg.name के प्राइवेट मेंबर्स तक पहुंचने की अनुमति देता है।
- opens pkg.name to module.name: वही कार्य, लेकिन केवल विशिष्ट मॉड्यूल्स तक रिफ्लेक्शन एक्सेस सीमित करता है।
मॉड्यूल डिस्क्रिप्टर मजबूत एनकैप्सुलेशन और स्पष्ट निर्भरता प्रबंधन को सक्षम बनाता है।