ලිපි

සැලසුම් රටා Vs SOLID මූලධර්ම, වාසි සහ අවාසි

නිර්මාණ රටා යනු මෘදුකාංග නිර්මාණයේ පුනරාවර්තන ගැටළු සඳහා විශේෂිත පහත් මට්ටමේ විසඳුම් වේ.

නිර්මාණ රටා යනු බහු ව්‍යාපෘති සඳහා යෙදිය හැකි නැවත භාවිත කළ හැකි විසඳුම් වේ.

ඇස්තමේන්තුගත කියවීමේ කාලය: 5 මිනුටි

සැලසුම් රටා සහ SOLID මූලධර්ම අතර ප්‍රධාන වෙනස්කම්

  1. නිර්මාණ රටාව:
    • විශේෂිත විසඳුම්: නිර්මාණ රටා යනු මෘදුකාංග නිර්මාණයේ පුනරාවර්තන ගැටළු සඳහා නිශ්චිත, පහත් මට්ටමේ විසඳුම් වේ.
    • ක්‍රියාත්මක කිරීමේ විස්තර: පොදු වස්තු-නැඹුරු ක්‍රමලේඛන අභියෝග විසඳීම සඳහා සංයුක්ත ක්‍රියාත්මක කිරීමේ මාර්ගෝපදේශ සැපයීම.
    • උදාහරණ: සමහර ප්‍රසිද්ධ මෝස්තර රටා වලට Singleton, Factory Method සහ Adapter රටා ඇතුළත් වේ.
    • ආරක්ෂාව: සැලසුම් රටා ප්‍රජාව විසින් පරීක්ෂා කර පුළුල් ලෙස පිළිගනු ලබන අතර, ඒවා අනුගමනය කිරීමට ආරක්ෂිත වේ.
  2. ඝන මූලධර්ම:
    • සාමාන්‍ය මාර්ගෝපදේශ: 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

නවෝත්පාදන පුවත් පත්‍රිකාව
නවෝත්පාදනය පිළිබඳ වැදගත්ම පුවත් අතපසු නොකරන්න. ඒවා විද්‍යුත් තැපෑලෙන් ලබා ගැනීමට ලියාපදිංචි වන්න.

මෑතකාලීන ලිපි

මාර්ගගත ගෙවීම්: ප්‍රවාහ සේවා ඔබව සදහටම ගෙවන ආකාරය මෙන්න

මිලියන ගණනක් ජනතාව ප්‍රවාහ සේවා සඳහා ගෙවයි, මාසික දායක ගාස්තු ගෙවයි. පොදු මතය වන්නේ ඔබ...

29 අප්රේල් 2024

ආරක්ෂාවේ සිට ප්‍රතිචාර දැක්වීම සහ ප්‍රතිසාධනය දක්වා ransomware සඳහා වඩාත් පුළුල් සහය Veeam විශේෂාංගී කරයි

Coveware by Veeam සයිබර් කප්පම් සිදුවීම් ප්‍රතිචාර සේවා සැපයීම දිගටම කරගෙන යනු ඇත. Coveware අධිකරණ වෛද්‍ය විද්‍යාව සහ ප්‍රතිකර්ම හැකියාවන් ලබා දෙනු ඇත…

23 අප්රේල් 2024

හරිත හා ඩිජිටල් විප්ලවය: පුරෝකථන නඩත්තු කිරීම තෙල් සහ ගෑස් කර්මාන්තය පරිවර්තනය කරන්නේ කෙසේද?

ශාක කළමනාකරණය සඳහා නව්‍ය සහ ක්‍රියාශීලී ප්‍රවේශයක් සමඟින් පුරෝකථන නඩත්තු තෙල් සහ ගෑස් අංශයේ විප්ලවීය වෙනසක් සිදු කරයි.

22 අප්රේල් 2024

UK antitrust regulator GenAI ගැන BigTech අනතුරු ඇඟවීමක් කරයි

එක්සත් රාජධානියේ CMA විසින් කෘතිම බුද්ධි වෙළඳපොලේ Big Tech හි හැසිරීම පිළිබඳව අනතුරු ඇඟවීමක් නිකුත් කර ඇත. එතන…

18 අප්රේල් 2024

ඔබේ භාෂාවෙන් නවෝත්පාදනය කියවන්න

නවෝත්පාදන පුවත් පත්‍රිකාව
නවෝත්පාදනය පිළිබඳ වැදගත්ම පුවත් අතපසු නොකරන්න. ඒවා විද්‍යුත් තැපෑලෙන් ලබා ගැනීමට ලියාපදිංචි වන්න.

පසු අපට