Python පරිගණක භාෂාවේ වස්තු (object) අතර සම්බන්ධතා ගැන දැන ගැනීමට අද දිනයේ අපි සූදානම්. පසුගිය දවස් තුනේ පන්තියන්, ගුප්තීකරණය සහ උරුමකරණය ගැන කතා කළා. අද එම පදනම් මත ඉදිරියට ගොස්, වස්තු එකිනෙකට කෙසේ සම්බන්ධ වෙන්නේද, ඒ සම්බන්ධතා කුමන වර්ග වලින් බෙදේද යන්න පිළිබඳව සරල උදාහරණ සමඟ විස්තර කරමු.
වස්තු සම්බන්ධතා වර්ග 4 ක්
වස්තු සම්බන්ධතා වර්ග 4ක් ඇත. ඒවායේ සම්බන්ධතා ශක්තිය, ජීවිත කාලය (lifecycle) පාලනය වැනි කරුණු මත වෙනස් වේ. පහත වගුවෙන් සරලව බලන්න.
- Dependency (Uses‑a) – කෙටි කාලීන භාවිතයක්. වස්තුවක් තවත් වස්තුවක් අමතර පරාමිතියක් ලෙස ලබා ගනී, නමුත් එය ස්ථාවරව ගබඩා නොකරයි.
- Association (Knows‑a) – දෙදෙනාම එකිනෙකා ගැන දැන සිටිනවා, නමුත් එකිනෙකගේ ජීවිත කාලය පාලනය නොකරයි.
- Aggregation (Has‑a – Weak) – මුළු වස්තුවක් කොටස් වලින් ගොඩනැගේ. කොටස් වස්තුව අස්සේ ඉදිරියට පවත්වා ගත හැකිය, මුළු වස්තුව අතුරුදන් වුවත්.
- Composition (Has‑a – Strong) – ඉතා ඝන සම්බන්ධතාවයකි. මුළු වස්තුව නිර්මාණය කරන විට කොටස් වස්තුද ඒ තුළින්ම නිර්මාණය වේ, මුළු වස්තුව අතුරුදන් වුවහොත් කොටස් වස්තුද අතුරුදන් වේ.
උදාහරණ සමඟ පැහැදිලි කිරීම
Dependency – Report වස්තුව Printer වස්තුවේ print_document ක්රියාවලිය භාවිතා කරයි, නමුත් Printer අරමුණේ තබා නොගනී.
Association – Teacher වස්තුව Student වස්තුවේ ලැයිස්තුවක් ගබඩා කරයි, නමුත් දෙදෙනාම වෙනම නිර්මාණය වේ.
Aggregation – Library වස්තුව Book වස්තු අරමුදලක් තබා ගනී. ලයිබ්රරිය අතුරුදන් වුවත් පොත් තවමත් මතකයේ පවතී.
Composition – Building වස්තුව Room වස්තු සෘජුවම ඇතුළත නිර්මාණය කරයි. ගොඩනැගිල්ල අතුරුදන් වුවහොත් කාමරද අතුරුදන් වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
මෙම සම්බන්ධතා මොඩලය ශ්රී ලංකාවේ තාක්ෂණික පාඨමාලා, විශ්වවිද්යාල පර්යේෂණ හා ව්යාපාරික වැඩසටහන් තුළ විශාල වාසියක් ලබා දේ. සිසුන්ට කේත සැලසුම් කරමින් වස්තු‑අභ්යන්තර සම්බන්ධතා තේරුම් ගැනීමට පහසු වේ. සංවර්ධකයින්ට කේතයේ පරිභෝගය, නඩත්තු පහසුකම් සහ මොඩියුලර් නිර්මාණය සඳහා මෙය මූලික මාර්ගෝපදේශයක් වන අතර, ස්ථාපිත ව්යාපාරවලට කාර්ය සාධනය වැඩිදියුණු කරමින්, පද්ධති අඩවි අඩු කරයි. කලාපීය තාක්ෂණික සමාජයෙහි Python භාවිතය ඉහල යාමට මේ සංකල්පය මූලික වේ.
අවසන් වශයෙන්, වස්තු සම්බන්ධතා හතරේ හැදෑරීම ඔබේ කේතය පවත්වාගෙන යාමට, පද්ධති සැලසුම් කිරීමේ දක්ෂතාවය වැඩිදියුණු කිරීමට සහ තාක්ෂණික ව්යාපෘති වල නව නිර්මාණාත්මක හැකියාවන් ගොඩනැගීමට උපකාරී වේ. ඔබේ Python කුසලතාවය ඉහළ නැංවීමට මේ මූලධර්ම අත්හදා බලන්න.