একটি মডিউল হলো প্যাকেজের একটি কন্টেইনার যা পুনর্ব্যবহার-এর জন্য ডিজাইন করা, এবং প্রতিটি মডিউলে একটি মডিউল ডেসক্রিপ্টর থাকে যাতে মডিউল নাম, মডিউল নির্ভরতা (যে অন্যান্য মডিউলগুলোর ওপর এটি নির্ভরশীল) এবং নাম যা এটি এক্সপোর্ট করে (যা শুধু সেই মডিউলগুলো ব্যবহার করতে পারে যারা এই মডিউলের ওপর নির্ভরশীল) সম্পর্কিত তথ্য থাকে।
মডিউলের সুবিধাগুলো
- স্ট্রอง এনক্যাপসুলেশন (Strong encapsulation) মডিউল সিস্টেমের একটি বড় সুবিধা কারণ "public" অ্যাক্সেস স্পেসিফায়ার আর সবার কাছে অ্যাক্সেসযোগ্য নয়। মডিউল সিস্টেম ব্যবহার করে আমরা সীমিত সেটের প্যাকেজকে বাইরের অ্যাপ্লিকেশনের কাছে অ্যাক্সেসযোগ্য করতে পারি।
- এটি আমাদের অ্যাপ্লিকেশনকে লাইটওয়েট (lightweight) করে তোলে, ফলে এটি অধিক ডিভাইসে চালানো যায়। লাইটওয়েট হওয়ার কারণে এটি অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করে।
- একটি আর্কিটেকচার যা আমাদের অ্যাপ্লিকেশনকে বাহ্যিক (external) ও গোপন (concealed) প্যাকেজে ভাগ করতে দেয়, ফলে separation of concern সিদ্ধান্ত সহজে মেনে চলা যায়।
- কিছু আভ্যন্তরীন ক্লাস প্যাকেজে, উদাহরণস্বরূপ sun.security.*, com.sun.crypto.* আর অ্যাক্সেসযোগ্য নয় কারণ এই প্যাকেজগুলো এখন গোপন, তাই সুরক্ষা উন্নত হয়েছে।
একটি মডিউল "module-info.java" নামে ফাইলের ভিতরে ঘোষণা করা হয়, যা মডিউল ডেসক্রিপ্টর।
module com.tutorialspoint.app{
// যেসব মডিউলের ওপর "com.tutorialspoint.app" মডিউলটি নির্ভরশীল
requires com.tutorialspoint.services;
// এই মডিউল যা এক্সপোর্ট করে সেটি অন্যান্য মডিউল ব্যবহার করতে পারে
exports com.tutorialspoint.app.util;
}