اصول SOLID: معرفی اصول SOLID - نکته خودمونی
معرفی اصول SOLID
- اصل اول SOLID، اصل تکمسئولیتی (Single Responsibility Principle) میگه که هر کلاس باید فقط یه دلیل برای تغییر داشته باشه. این یعنی یه کلاس نباید هم مسئول مدیریت داده باشه و هم مسئول نمایش اون! 🧼
- وقتی یه کلاس یا ماژول خیلی کار انجام میده، احتمالا بوی بد "کلاس بزرگ" (Large Class) رو داره. اصول SOLID، مخصوصاً SRP، کمک میکنه این بو رو تشخیص بدیم و کد رو به بخشهای کوچیکتر و متمرکزتر تقسیم کنیم. ✨
- اصل دوم SOLID، اصل باز-بسته (OpenClosed Principle) هست. یعنی باید بتونیم کدمون رو گسترش بدیم (Open for extension) ولی تغییرش ندیم (Closed for modification). این یعنی کدهامون انعطافپذیرتر میشن. 🚪
- یکی از بوی بد کدها، "افزودن شرطهای زیاد" (Excessive Conditional Complexity) هست. اصل OCP با استفاده از الگوهای طراحی مثل Strategy یا Template Method، به ما کمک میکنه این بو رو رفع کنیم و به جای شرطهای زیاد، از پلیمورفیسم استفاده کنیم. 🤔
- اصل سوم SOLID، اصل جایگزینی لیسکوف (Liskov Substitution Principle) هست. به زبان ساده، اگه کلاس B از کلاس A ارثبری میکنه، باید بتونیم هر جایی از کلاس A استفاده کردیم، از کلاس B هم استفاده کنیم بدون اینکه برنامه خراب بشه. 🦒
- بوی بد "وابستگی زیاد به نوع" (Dependency on Concrete Class) با اصل LSP قابل رفع شدنه. به جای اینکه مستقیماً از یک کلاس خاص استفاده کنیم، بهتره از یک اینترفیس یا کلاس انتزاعی استفاده کنیم تا بتونیم پیادهسازیهای مختلف رو جایگزین کنیم. 🔄
- اصل چهارم SOLID، اصل جداسازی اینترفیس (Interface Segregation Principle) هست. این اصل میگه که کلاینتها نباید مجبور باشن متدهایی رو پیادهسازی کنن که ازشون استفاده نمیکنن. این یعنی اینترفیسهای کوچکتر و تخصصیتر بهترن. ✂
- اگر یه اینترفیس خیلی بزرگه و متدهای زیادی داره که بعضی کلاینتها فقط به بخشی از اونها نیاز دارن، این یه بوی بد "اینترفیس بزرگ" (Interface Segregation) رو نشون میده. ISP به ما کمک میکنه اینترفیسها رو به بخشهای منطقیتر تقسیم کنیم. 🧩
- اصل پنجم SOLID، اصل وارونگی وابستگی (Dependency Inversion Principle) هست. این اصل میگه که ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشن؛ هر دو باید به انتزاعات (Abstractions) وابسته باشن. همچنین انتزاعات نباید به جزئیات وابسته باشن، بلکه جزئیات باید به انتزاعات وابسته باشن. 🔗
- بوی بد "وابستگیهای زیاد" (Excessive Dependencies) یا "کلاس چسبناک" (Sticky Class) که یه کلاس به خیلی از کلاسهای دیگه وابسته است، با اصل DIP قابل مدیریته. با استفاده از تزریق وابستگی (Dependency Injection)، میتونیم این وابستگیها رو مدیریت کنیم و کد رو قابل تستتر و انعطافپذیرتر کنیم. 💉
منبع آموزشی این مطلب
این مطلب برگرفته از محصول آموزشی «شناسایی بوی بد کد (Code Smells) و رفع آنها با SOLID» است
برای مشاهده توضیحات کامل، جزئیات دوره و دریافت محصول، روی دکمه زیر کلیک کنید.
اطلاعات بیشتر و دریافت محصول