মডিউল হলো কোড, ডেটা ও রিসোর্সের সমষ্টি। এটি সম্পর্কিত প্যাকেজ ও টাইপ যেমন ক্লাস, অবস্ট্রাক্ট ক্লাস, ইন্টারফেস সহ কোড, ডেটা ফাইল ও স্ট্যাটিক রিসোর্সের একটি সেট।
মডিউলের প্রধান বৈশিষ্ট্যগুলো
- একটি মডিউল অবশ্যই অন্য মডিউলের সাথে যোগাযোগের জন্য একটি ইন্টারফেস ডিফাইন করতে হবে।
- একটি মডিউল মডিউল ইন্টারফেস ও মডিউল ইমপ্লিমেন্টেশন-এর মধ্যে পার্থক্য স্পষ্ট করে।
- একটি মডিউল ইনফরমেশন ধারণকারী প্রোপার্টির একটি সেট উপস্থাপন করে।
- দুই বা ততোধিক মডিউল নেস্টেডভাবে থাকতে পারে।
- একটি মডিউলের স্পষ্ট, সংজ্ঞায়িত দায়িত্ব থাকে। প্রতিটি ফাংশন শুধু একটি মডিউল দ্বারা ইমপ্লিমেন্ট করা হয়।
- একটি মডিউল অবশ্যই অন্যান্য মডিউল থেকে স্বাধীনভাবে টেস্টযোগ্য হতে হবে।
- এক মডিউল中的 এরর অন্য মডিউলে প্রসারিত হয় না।
মডিউল নির্ভরতা ও এক্সপোর্টের শর্তাবলী
মনে করুন দুটি মডিউল: M1 এবং M2 এবং একটি মডিউলে একটা প্যাকেজ। M2-এ Pkg2 নামে একটি প্যাকেজ আছে যা M1-এ এক্সেসIBLE করতে চাই। তাহলে নিচের শর্তাবলী পূরণ করতে হবে:
- মডিউল M1, মডিউল M2-র ওপর নির্ভরশীল হলে, মডিউল M1 তার ডিক্লেরেশনে বताতে পারে যে সেটি "requires" মডিউল M2।
- মডিউল M2 প্যাকেজ Pkg2 কে এক্সপোর্ট করবে যাতে সেটি তার ওপর নির্ভরশীল মডিউলগুলোর জন্য উপলব্ধ হয়। মডিউল M2-এর ডিক্লерেশনে বতানো যায় যে সেটি "exports" প্যাকেজ Pkg2।