ඔබ Java භාෂාවෙන් කිහිපයක් පන්තියක් ලියද්දී, සියල්ල හොඳින් වැඩ කරයි. නමුත් තවත් පන්තියක් එක්කලාම, ගොනු ගණන සියයට පමණට වර්ධනය වෙයි, නාම ගැටළු හමුවේ. මේ වගේ ගැටලුවට Packages විසඳුමක්.
Package කියන්නේ කුමක්ද? Java හි Package එකක් යනු නාමාවකාශයක් (namespace) වන අතර, සම්බන්ධිත පන්තීන්, අතුරුමුහුන් සහ Enum ගොනු එකතු කර ෆෝල්ඩරයක් වැනි රචනාවක් සකස් කරයි. ඔබේ සරල "HelloWorld" පන්තියද Package එකක් තුළ දිගුවේ; ඔබ Package එකක් නොලියන්නේ නම්, එය "default package" තුළ වැටේ. එය පාසල් ව්යාපෘති සඳහා හොඳයි, නමුත් වෘත්තීය මට්ටමේ ව්යාපෘති සඳහා අනිසි වේ.
Package පාවිච්චි කරන ප්රධාන හේතු තුන
- නාම ගැටළු (Name collisions) – ඔබේ ආයතනයේ User පන්තියක්, තෙවන පාර්ශවයක් ලබා දෙන Library එකේ User පන්තියක් තිබේ නම්, Packages මගින් ඒ දෙකම
com.yourcompany.model.Userසහorg.somelibrary.model.Userලෙස වෙනස් කර ගත හැක. - ප්රවේශ පාලනය (Access control) – Java හි private, protected, public සහ package‑private (default) යන ප්රවේශ මට්ටම් ඇත. Package‑private මට්ටම එකම Package තුළ පන්තීන්ට ප්රවේශ ලබා දෙන අතර, පිටත පන්තීන්ට එය නොලැබේ. මෙය අභ්යන්තර ක්රියාකාරකම් සඟවා තබා, සම්බන්ධිත පන්තීන්ට පමණක් දැනගැනීමට ඉඩ සලසයි.
- සොයාගැනීමේ පහසුව (Discoverability) – Billing සම්බන්ධ සියලු පන්තීන්
com.yourcompany.billingතුළ තිබේ නම්, නව සංවර්ධකයන්ට ඒවා සොයා ගැනීම ඉතා පහසු වේ.
නමකරණ සම්මතය – Package නාමයන් පසුපසින් domain නාමය ආපසු ලියන රීතියෙන් (reverse domain) ආරම්භ වේ. ඔබේ වෙබ් අඩවිය jamilur.dev නම්, Package නාමය dev.jamilur ලෙස පටන් ගත යුතුය. සියලු අකුරු කුඩා අකුරින් ලියයි, එවිට පන්තීන්ගේ නාමයන් සමඟ ගැලපෙයි.
Package එකක් ප්රකාශ කිරීම – Java ගොනුවේ ඉහලම තැන, import පූර්වව, පහත පරිදි ලියන්න:
package dev.jamilur.bkash.app;
ගොනුවේ පිහිටීම dev/jamilur/bkash/app/ ෆෝල්ඩරය සමඟ සමාන විය යුතුය. Package ප්රකාශය අමතක කරන්නේ නම්, Java ගොනුව default package එකට යයි, එය production වල භාවිතයට සුදුසු නොවේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ විශ්වවිද්යාල සිසුන්, නවක සංවර්ධකයන් සහ ව්යාපාරිකයින්ට Packages ගැන අවබෝධය ඇති වීමෙන් කේත කළමනාකරණය පහසු වේ. පන්තීන් නාම ගැටළුවකින් පසුබැසීමක් නොමැතිව, එකම නාමයක් භාවිතා කරන ලාබදේවල් සමඟ එකට වැඩ කළ හැක. ඒ නිසා ලයිබ්රරීන් එක්ක ඒකාබද්ධ කිරීම, API අනුගමනය සහ කණ්ඩායම් වැඩ කටයුතු වේගවත් වේ. තවද, Package‑private ප්රවේශය භාවිතා කරමින්, සංවර්ධකයන්ට ආභ්යන්තර ලොජික් සඟවා, API අතුරුමුහුන් පිරිසිදු කර, ආරක්ෂාව වැඩි කර ගත හැක. අවසානයේ, නාමාවකාශය නිසි ලෙස සැලසුම් කිරීමෙන්, ශ්රී ලංකාවේ තාක්ෂණික ආයතනවල කේත ගුණාත්මකත්වය, නඩත්තු කාලය සහ වියදම් අඩු වේ.
Java Packages භාවිතය ඔබේ වැඩසටහන්වල ගොඩනැගීමේ පදනමක් බව සැලකිය යුතුය. ඒ නිසා, නව ව්යාපෘති ආරම්භ කරන විට, Package සැලැස්වීමෙන් පළමුවෙන්ම ආරම්භ කරන්න.