فرید شریعتی
فرید شریعتی
خواندن ۲ دقیقه·۳ سال پیش

کوتاه ، مختصر ، مفید SOLID


از چیز هایی که یک برنامه نویس باید بلد باشه و حداقل ازشون آگاه باشه و یک دید کلی بهش داشته باشه مفاهیم SOLID هست ، احتمال این که توی مصاحبه ی کاریتون ازتون بپرسن که SOLID چی هست و یه توضیح دربارش بهمون بده خیلی بالاست ، تعریف های کامل و دقیق از مفاهیم SOLID وجود داره که فارسی چه انگلیسی ولی قصد من از این مقاله ی خیلی کوتاه اینه که یه توضیح ساده درباره ی هر کدوم از این مفاهیم بهتون بدم که یه دید اولیه بهشون پیدا بکنید :

S - Single responsibility principle :

این قانون رو به طور خلاصه SRP هم میگیم و بیان میکنه که هر کلاس که ما میسازیم نباید بیشتر از یک وظیفه داشته باشه ، و اگر بخواهیم این کلاس رو تغییر بدیم فقط وظیفش رو عوض کنیم ، همین .

O - Open-Closed principle :

این قانون میگه که کلاسی که میسازیم برای توسعه یافتن باز باشه ولی برای تغییرات بسته باشه ، به همین دلیله که بهش میگیم باز و بسته ، برای مثال کتابخانه هایی که موجود هستن رو میشه ازشون ارث بری بکنیم و تغییرات بدیم و گسترده بکنیم ، اما نمیتونیم خود اون کتابخونه رو عوض کنیم .

L - Liskov Substitution principle :

این قانون میگه که وقتی ما یک کلاس فرزند داریم ، این کلاس باید بتونه تمام کار هایی که پدرش انجام میده رو انجام بده و رفتار کلاس پدرش رو تغییر نده ، در غیر این صورت این قانون نقض شده ، یعنی مثلا اگه ما یک کلاس داریم که اسمش مرغ هست ، و اسم کلاس فرزندش بشه مرغ پلاستیکی ، خب کلاس فرزند این مرغ نمیتونه تخم بذاره :) چون پلاستیکیه ، پس ما این قانون رو اینجا نقض کردیم .

I - Interface Segregation principle :

این قانون میگه که داشتن چند تا اینترفیس که هر کدوم یک کار مشخص انجام میدن ، بهتر از اینه که ما یک اینترفیس داشته باشیم که چند تا کار انجام بده .

D - Dependency Inversion principle :

این قانون هم میگه که ماژول های سطح بالای برنامه نباید به ماژول های سطح پایین برنامه وابسته باشن و به نوعی بیان میکنه که وابستگی رو باید از بالا به پایین کم کنیم .


امیدوارم این توضیحات کوتاه براتون مفید بوده باشه و تونسته باشم یه دید اولیه و کلی نسبت به مفاهیم SOLID بهتون بدم ، اما قطعا این مفاهیم عمیق تر از این مقاله ی کوتاه هستن و توصیه میکنم که بعد از خوندن این مقاله ، خودتون هم درباره ی این مفاهیم تحقیق بکنید تا به درک بهتری ازشون برسید .


موفق باشید :)


solidآموزشprinciple قانونقانونمفاهیم solid
سعی در ایجاد ثبات و فرار از سکون
شاید از این پست‌ها خوشتان بیاید