
اصول SOLID به زبان ساده
SOLID مخفف 5 اصل هست که موقع برنامه نویسی باید رعایت بشن تا قابلیت نگهداری و اپدیت کد در دراز مدت به آسونترین و بهترین شکل پیش بره.🤩
Single responsibility principle بهش SRP هم میگن به معنی اینکه هر کلاس بایستی فقط یک کار انجام دهد نه بیشتر. پس اگر کلاسی داری که داره 2 کار متفاوت انجام میده همین الان تبدیلش که به 2 کلاس مختلف. حالا اینکه مرز بین کارها چی هستن فرمولی براش نیست و شمای برنامه نویس تصمیم میگیرید. ضمن اینکه با بزرگتر شدن برنامه امکان داره شما مدام مجبور به بازنگری کلاسها بشید و این به این معنا نیست که طراحی قبلی مشکل داشته
Open/closed principle به معنی اینکه کلاس ها جوری نوشته بشن که قابل گسترش باشند اما نیاز به تغییر نداشته باشند. ارثبری , استفاده از eventها و... راه پیاده سازی هستند.
Liskov Substitution Principle به مفهوم اینکه هر کلاسی که از کلاس دیگر ارث بری میکند هرگز نباید رفتار کلاس والد را تغییر دهد. اگر کلاسی A از کلاس B ارث بری کند در حالی برخی از قابلیتهای اون رو نداره یعنی شما این اصل رو رعایت نکردید. فقط به شرطی ارثبری باید کنه که تمام ویژگیهای کلاس پدر رو داشته باشه و بخاد رفتارهای دیگه ای هم اضافه بر اون داشته باشه
Interface Segregation Principle به مفهوم اینکه چند اینترفیس کوچک و خورد شده همیشه بهتر از یک اینترفیس کلی و بزرگ است.
Dependency inversion principle معنی اینکه از اینترفیس ها به خوبی استفاده کن. نباید ارتباط مستقیمی بین کلاس ها وجود داشته باشد. به جای کلاس اینترفیسش و به کلاس اینجکت کن تا به هم وابستگی نداشته باشن اصطلاحاً گفته میشه که باید ارتباط بین کلاس ها Loosely Coupled باشد