නිර්මාණ රටා යනු මෘදුකාංග නිර්මාණයේ පුනරාවර්තන ගැටළු සඳහා විශේෂිත පහත් මට්ටමේ විසඳුම් වේ.
නිර්මාණ රටා යනු බහු ව්යාපෘති සඳහා යෙදිය හැකි නැවත භාවිත කළ හැකි විසඳුම් වේ.
ඇස්තමේන්තුගත කියවීමේ කාලය: 5 මිනුටි
සැලසුම් රටා සහ SOLID මූලධර්ම අතර ප්රධාන වෙනස්කම්
- නිර්මාණ රටාව:
- විශේෂිත විසඳුම්: නිර්මාණ රටා යනු මෘදුකාංග නිර්මාණයේ පුනරාවර්තන ගැටළු සඳහා නිශ්චිත, පහත් මට්ටමේ විසඳුම් වේ.
- ක්රියාත්මක කිරීමේ විස්තර: පොදු වස්තු-නැඹුරු ක්රමලේඛන අභියෝග විසඳීම සඳහා සංයුක්ත ක්රියාත්මක කිරීමේ මාර්ගෝපදේශ සැපයීම.
- උදාහරණ: සමහර ප්රසිද්ධ මෝස්තර රටා වලට Singleton, Factory Method සහ Adapter රටා ඇතුළත් වේ.
- ආරක්ෂාව: සැලසුම් රටා ප්රජාව විසින් පරීක්ෂා කර පුළුල් ලෙස පිළිගනු ලබන අතර, ඒවා අනුගමනය කිරීමට ආරක්ෂිත වේ.
- ඝන මූලධර්ම:
- සාමාන්ය මාර්ගෝපදේශ: SOLID මූලධර්ම යනු හොඳ මෘදුකාංග නිර්මාණයක් දැනුම් දෙන ඉහළ මට්ටමේ මාර්ගෝපදේශ වේ.
- පරිමාණය කළ හැකි ගෘහ නිර්මාණ ශිල්පය: ඔවුන් පරිමාණය, නඩත්තු කිරීමේ හැකියාව සහ කියවීමේ හැකියාව කෙරෙහි අවධානය යොමු කරයි.
- භාෂාවට බැඳී නැත: SOLID මූලධර්ම කිසිදු විශේෂිත ක්රමලේඛන භාෂාවකට බැඳී නැත.
- උදාහරණ:
- තනි වගකීම් මූලධර්මය (SRP): පන්තියකට වෙනස් වීමට එක් හේතුවක් පමණක් තිබිය යුතුය.
- විවෘත/සංවෘත මූලධර්මය (OCP): මෘදුකාංග ආයතන දිගුව සඳහා විවෘතව තිබිය යුතු නමුත් වෙනස් කිරීම සඳහා වසා තිබිය යුතුය.
- Liskov ආදේශන මූලධර්මය (LSP): උප වර්ග ඒවායේ මූලික වර්ග සමඟ ප්රතිස්ථාපනය කළ යුතුය.
- අතුරුමුහුණත් වෙන් කිරීමේ මූලධර්මය (ISP): ඔවුන් භාවිතා නොකරන අතුරුමුහුණත් මත යැපීමට සේවාදායකයන්ට බල නොකළ යුතුය.
- යැපුම් ප්රතිලෝම මූලධර්මය (DIP): ඉහළ මට්ටමේ මොඩියුල අඩු මට්ටමේ මොඩියුල මත රඳා නොපවතී; දෙකම වියුක්තයන් මත රඳා පැවතිය යුතුය.
සාරාංශයක් ලෙස, සැලසුම් රටා නිශ්චිත විසඳුම් ලබා දෙන අතර SOLID මූලධර්ම වඩා හොඳ මෘදුකාංග නිර්මාණය සඳහා පොදු මාර්ගෝපදේශ සපයයි
මෝස්තර රටා භාවිතා කිරීමේ වාසි
- නැවත භාවිතා කිරීමේ හැකියාව: නිර්මාණ රටා යනු බහු ව්යාපෘති සඳහා යෙදිය හැකි නැවත භාවිත කළ හැකි විසඳුම් වේ. ස්ථාපිත රටා භාවිතා කිරීමෙන්, සංවර්ධකයින් පොදු ගැටළු සඳහා රෝදය ප්රතිනිර්මාණය කිරීමට අවශ්ය නොවන බැවින්, කාලය සහ ශ්රමය ඉතිරි කරයි.
- Defiගෘහ නිර්මාණ ශිල්පය: මෝස්තර රටා උපකාරී වේ defiමෘදුකාංග පද්ධතියේ ගෘහ නිර්මාණ ශිල්පය පිරිපහදු කරන්න. ඔවුන් නිශ්චිත සැලසුම් අභියෝග විසඳීමට ව්යුහගත ප්රවේශයක් සපයයි, අනුකූලතාව සහ නඩත්තු කිරීමේ හැකියාව සහතික කරයි.
- ෆ්ලීසිබිලිටා: සැකිලි වෙනස්වන අවශ්යතා වලට අනුව නම්යශීලී වීමට ඉඩ සලසයි. නව විශේෂාංග හෝ වෙනස්කම් අවශ්ය වූ විට, සංවර්ධකයින්ට සම්පූර්ණ පද්ධතියම බිඳ දැමීමකින් තොරව පවතින සැකිලි වෙනස් කිරීමට හෝ දිගු කිරීමට හැකිය.
මෝස්තර රටා භාවිතා කිරීමේ අවාසි
- ඉගෙනීමේ වක්රය: නිර්මාණ රටා අවබෝධ කර ගැනීමට සහ යෙදීමට දැනුම සහ පළපුරුද්ද අවශ්ය වේ. නවක සංවර්ධකයින්ට සංකල්ප තේරුම් ගැනීමට අපහසු විය හැකි අතර දී ඇති ගැටළුවක් සඳහා නිවැරදි ආකෘතිය තෝරා ගත හැකිය.
- අධික භාවිතය: පහසුවෙන් ලබා ගත හැකි මෝස්තර රටා තිබීම, පවතින රටා භාවිතයෙන් සියලු ගැටලු විසඳිය හැකි බවට වැරදි වැටහීමක් ඇති කළ හැකිය. සැකිලි අධික ලෙස භාවිතා කිරීම නිර්මාණශීලීත්වය සීමා කළ හැකි අතර වඩා හොඳ, වඩා නව්ය විසඳුම් සෙවීමට බාධාවක් විය හැකිය.
- සංකීර්ණත්වය- සමහර මෝස්තර රටා කේත පදනමට අතිරේක සංකීර්ණත්වය හඳුන්වා දෙයි. සංවර්ධකයින් රටා ඵලදායී ලෙස භාවිතා කිරීම සහ කේතය තේරුම් ගත හැකි කිරීම අතර සමබරතාවයක් සොයා ගත යුතුය.
සාරාංශයක් ලෙස, සැලසුම් රටා නැවත භාවිතා කිරීමේ හැකියාව, ගෘහ නිර්මාණ ශිල්පය සහ නම්යශීලිත්වය අනුව සැලකිය යුතු වාසි ලබා දෙයි, නමුත් අනවශ්ය සංකීර්ණත්වය මඟහරවා ගැනීමට සහ නිර්මාණශීලිත්වය ප්රවර්ධනය කිරීමට ඒවායේ භාවිතය විචක්ෂණ විය යුතුය.
Laravel හි නිර්මාණ රටාවේ උදාහරණය: Singleton
Singleton සැලසුම් රටාව මඟින් පන්තියකට ඇත්තේ එක් අවස්ථාවක් පමණක් බව සහතික කරන අතර එක් ඇතුල් වීමේ ලක්ෂ්යයක් සපයයි. Laravel හි, මෙම ආකෘතිය බොහෝ විට දත්ත සමුදා සම්බන්ධතා හෝ වින්යාස සැකසුම් වැනි සම්පත් කළමනාකරණය කිරීමට භාවිතා කරයි.
PHP හි Singleton රටා ක්රියාත්මක කිරීමේ මූලික උදාහරණයක් මෙන්න:
<?php
පන්තියේ සිංගල්ටන් {
පුද්ගලික ස්ථිතික $instance = null;
පුද්ගලික ශ්රිතය __construct() {
// සෘජු ක්ෂණිකව වැළැක්වීම සඳහා පුද්ගලික ඉදිකිරීම්කරු
}
පොදු ස්ථිතික ශ්රිතය getInstance(): self {
නම් (ශුන්ය === ස්වයං::$උදාහරණය) {
self::$instance = new self();
}
return self::$instance;
}
// වෙනත් ක්රම සහ ගුණාංග මෙහි එකතු කළ හැක
}
// භාවිතය:
$singletonInstance = Singleton::getInstance();
// දැන් ඔබට සිංගල්ටන් පන්තියේ තනි අවස්ථාවක් තිබේ
// Laravel හි උදාහරණ භාවිතය:
$database = DB:: connection('mysql');
// දත්ත සමුදා සම්බන්ධතා අවස්ථාවක් ලබා ගන්න (singleton)
නියැදි කේතයේ:
- සිංගල්ටන් පන්තියට සෘජු ක්ෂණිකව වැළැක්වීම සඳහා පුද්ගලික ඉදිකිරීම්කරුවෙකු ඇත;
- getInstance() ක්රමය පන්තියේ එක් අවස්ථාවක් පමණක් පවතින බව සහතික කරයි;
- ඔබට අවශ්ය පරිදි Singleton පන්තියට වෙනත් ක්රම සහ ගුණාංග එකතු කළ හැක;
Laravel සේවා කන්ටේනරය පන්ති පරායත්තතා කළමනාකරණය කිරීමට සහ පරායත්ත එන්නත් කිරීම සඳහා Singleton රටාව භාවිතා කරයි. ඔබ Laravel තුළ වැඩ කරන්නේ නම්, එහි සේවා බහාලුම භාවිතා කිරීම සහ වඩාත් උසස් භාවිත අවස්ථා සඳහා සේවා සපයන්නෙකු සමඟ ඔබේ පන්තිය ලියාපදිංචි කිරීම සලකා බලන්න.
Ercole Palmeri
11 අප්රේල් 2024 4:24 ප.ව