متین تلخابی
متین تلخابی
خواندن ۱ دقیقه·۴ ماه پیش

اصل جایگزینی (Liskov Substitution)

توی این پست به توضیح اصل جایگزینی از سری اصول SOLID می پردازیم



خلاصه اصل جایگزینی اینکه:
اگه من یه کلاسی دارم به اسم S(جایگزین) که زیرکلاس M(اصلی) هست شیء های نوع M باید بدون تغییر دادن کد با شیء های نوع S جابه جا بشن

حالا پایین تر با کد توضیح میدم

اول یه مثال میزنیم که این اصل داخلش به کار رفته شده باشه (حواستون باشه به صورت خلاصه ما باید بتونیم زیر کلاس ها رو جای کلاس اصلی بزاریم لازم نیست سخت بگیرید~_~)

کلاس Bird: یک کلاس پایه با یک متد fly که هیچ پیاده‌سازی‌ای ندارد.
کلاس Sparrow: این کلاس از Bird ارث‌بری می‌کند و متد fly را پیاده‌سازی کرده است که پیامی مبنی بر پرواز گنجشک نمایش می‌دهد.
کلاس Eagle: این کلاس نیز از Bird ارث‌بری می‌کند و متد fly را پیاده‌سازی کرده است که پیامی مبنی بر پرواز عقاب نمایش می‌دهد.
تابع make_bird_fly: این تابع یک شئ از نوع Bird دریافت می‌کند و متد fly آن را فراخوانی می‌کند.

خوب به صورت کلی اگه من هر کدوم از زیرکلاس های Bird رو به جاش بزارم برنامه درست کار می کنه
حالا اگه یه زیر کلاسی باشه که بخواد خطا درست کنه یا چیزی غیر منتظره برگردونه وقتی جایگزین میشه می گن که اصل LSP درست اجرا نشده



کلی سری SOLID رو توی این پست گذاشتم اگه خواستی یه سر بزن

https://virgool.io/@KMmatin/%D8%A7%D8%B5%D9%88%D9%84-solid-kilmqrbhi29u

خوب برای این پست کافیه
اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو
امیدوارم این پست به دردتون خورده باشه
موفق و پیروز باشید ...

ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان...

اصول solidlspاصل Liskov substitution principleاصول برنامه نویسیاصل جایگزینی
برنامه‌نویس Back End مسلط به زبان‌های TailwindCSS، JavaScript، Python و فریم‌ورک Django. مشتاق یادگیری و پیشرفت
شاید از این پست‌ها خوشتان بیاید