PHP හි OOP හි අතුරු මුහුණත්
ඔබ දැනටමත් දන්නා පරිදි, වියුක්ත පන්ති තම සංත්යන් සඳහා ක්රම සමූහයක් නියෝජනය කරයි. මෙම ක්රමවල කොටසක් පන්තිය තුළම ක්රියාත්මක කළ හැකි අතර, යම් ක්රම වියුක්ත ලෙස ප්රකාශ කර උපපන්තිවල ක්රියාත්මක කිරීම අවශ්ය විය හැක.
ඔබේ වියුක්ත පන්තිය ක්රියාත්මක කිරීමක් නොමැතිව, ක්රමවලින් යුත් වියුක්ත පොදු ක්රම පමණක් නියෝජනය කරන අවස්ථාවක් ගැන සිතන්න.
ඇත්ත වශයෙන්ම, ඔබේ මූලික පන්තිය එහි සංත්යන්ගේ අතුරු මුහුණත විස්තර කරයි, එනම් ඔවුන්ගේ පොදු ක්රමවල අනිවාර්ය කටයුතු සමූහය.
මෙය අපට අවශ්ය වන්නේ ඇයි: ක්රමලේඛනය කිරීමේදී දෝෂ අඩු කිරීමට - අවශ්ය සියලුම ක්රම මූලික පන්තියේ විස්තර කිරීමෙන්, අපට විශ්වාසයක් ඇති කර ගත හැකිය සියලුම සංත්යන් ඒවා ඇත්ත වශයෙන්ම ක්රියාත්මක කරන බව.
මෙය උදව් වන්නේ කවදාද: අපි නිර්මාණය කරමු මූලික පන්තිය සහ ඒ සඳහා කිහිපයක් සංත්යන්. සංත්යන්ගෙන් පසුව කාලයකට පසු, උදාහරණයක් ලෙස, මාසයකට පසුව, අපි තවත් සංත්යයක් නිර්මාණය කිරීමට තීරණය කරමු අපගේ කේතයේ විස්තර අපට මතක නැති වී ඇති අතර නව සංත්යයක යම් ක්රමයක් ලිවීමට අපට අමතක විය හැකිය. කෙසේ වෙතත්, PHP සහයම ක්රමයක් අහිමි වීමට ඉඩ නොදෙයි - සහ සරලව දෝෂයක් නිකුත් කරයි.
එයම වෙනත් ක්රමලේඛකයෙකු සඳහාද අදාළ වේ, ඔබේ ව්යාපෘතිය සමඟ වැඩ කිරීම. මූලික පන්තියේ කේතය ඉඩ දෙන්න ඔබ ලිව්වා, පසුව ඔබේ සගයා නැවත සංත්යයක් නිර්මාණය කිරීමට තීරණය කළා. ඔබේ සගයාට ද ක්රම කිහිපයක් අහිමි වීමට නොහැකි වනු ඇත.
කෙසේ වෙතත්, ගැටළුවක් තිබේ: ඇත්ත වශයෙන්ම අපි කළා වියුක්ත පොදු ක්රම ලිවීමට අපගේ මූලික පන්තිය එහි, නමුත් අපි සමඟ හෝ අපගේ සගයාට අහම්බෙන් එකතු කිරීමට අවස්ථාව ඇත මෙම පන්තියේ පොදු ක්රමයක් නොවේ හෝ වියුක්ත නොවේ.
අපට භෞතිකව එසේ කිරීමට තහනම් කිරීමට අවශ්ය යැයි සිතමු වියුක්ත හැර වෙනත් ක්රම මූලිකයා තුළ පොදු. PHP හි මේ සඳහා වියුක්ත වෙනුවට පන්ති භාවිතා කළ හැකිය අතුරු මුහුණත්.
අතුරු මුහුණත් යනු සියලුම ක්රම පොදු වන පන්ති වේ සහ ක්රියාත්මක කිරීමක් නොමැති. ක්රම සඳහා කේතය ක්රියාත්මක කළ යුතුය අතුරු මුහුණතල සංත්ය පන්ති.
අතුරු මුහුණත සාමාන්ය පරිදි ප්රකාශ කරනු ලැබේ
පන්ති, නමුත් යතුරු වචනය භාවිතා කරයි interface
වචනය වෙනුවට class.
අතුරු මුහුණතලින් උරුම ලබා ගැනීම සඳහා භාවිතා වේ
තරමක් වෙනස් පාරිභාෂිකය: පන්ති අතුරු මුහුණතලින් උරුම නොලබන බව කියනු ලැබේ, නමුත් ක්රියාත්මක කරයි
ඔවුන්. ඒ අනුව වචනය වෙනුවට extends
යතුරු වචනය භාවිතා කළ යුතුය
implements.
අතුරු මුහුණතක වස්තුවක් නිර්මාණය කළ නොහැක.
සියලු ක්රම
අතුරු මුහුණත ප්රකාශ කළ යුතුය public
සහ ක්රියාත්මක කිරීමක් නොතිබිය යුතුය. අතුරු මුහුණත
ක්රම පමණක් තිබිය හැකිය, නමුත් ගුණාංග නොවේ.
එකම නම සහිත අතුරු මුහුණතක් සහ පන්තියක් ද සෑදිය නොහැක.