Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความสำคัญของ Module Descriptor ในโมดูลของ Java 9

โมดูล (Module) เป็นชุดของโค้ดในรูปของคลาสที่จัดระเบียบอยู่ใน แพ็กเกจ (packages) และทรัพยากรคงที่ (static resources) เช่น property files เป็นต้น โมดูลให้ข้อมูลที่จำเป็นสำหรับสภาพแวดล้อมภายนอกในการใช้งานโมดูลนั้น Module Descriptor เป็นแหล่งสำคัญของระบบโมดูล เป็นรูปแบบคอมไพล์ของการประกาศโมดูลที่ระบุในไฟล์ชื่อ module-info.java ที่รูทของไดเรกทอรีโมดูล

ตัวอย่างการประกาศโมดูล

module com.myproject.module1 {
    requires com.myproject.module2;
    exports com.myproject.project1;
    exports com.myproject.project2;
}

คำสั่งหลักใน Module Descriptor

  • module module.name: ประกาศโมดูลชื่อ module.name
  • requires module.name: ระบุว่าโมดูลนี้พึ่งพา module.name อนุญาตให้เข้าถึง public types ที่ export จากโมดูลเป้าหมาย
  • requires transitive module.name: โมดูลที่พึ่งพาโมดูลนี้ จะพึ่งพา module.name อัตโนมัติ
  • exports pkg.name: โมดูลนี้ export สมาชิก public ในแพ็กเกจ pkg.name ให้ทุกโมดูลที่ require โมดูลนี้
  • exports pkg.name to module.name: เหมือนข้างต้น แต่จำกัดเฉพาะโมดูลที่ระบุเท่านั้น
  • uses class.name: ทำให้โมดูลนี้เป็น consumer ของ service class.name
  • provides class.name with class.name.impl: ลงทะเบียน class.name.impl เป็นการใช้งาน service class.name
  • opens pkg.name: อนุญาตให้โมดูลอื่นใช้ reflection เข้าถึงสมาชิก private ของแพ็กเกจ pkg.name
  • opens pkg.name to module.name: เหมือนข้างต้น แต่จำกัดโมดูลที่ได้ใช้ reflection

Module Descriptor เป็นหัวใจของระบบโมดูล ควบคุมการเข้าถึง ความพึ่งพา และการ encapsulate อย่างชัดเจน