CodeShot
SOLID2 دقیقه مطالعه

اصول SOLID چیست؟

SOLID پنج اصل طراحی شی‌گرا برای کدی است که راحت‌تر تغییر، تست و نگهداری می‌شود.

چرا مهم است؟

SOLID یکی از پرتکرارترین سؤالات مصاحبهٔ .NET در هر سطحی است و پایهٔ Clean Architecture/DDD محسوب می‌شود.

پنج اصل

  • S - Single Responsibility: هر کلاس فقط یک دلیل برای تغییر داشته باشد.
  • O - Open/Closed: باز برای توسعه، بسته برای تغییر — با افزودن کد جدید نه ویرایش کد قدیمی.
  • L - Liskov Substitution: زیرکلاس باید بتواند جای کلاس پایه را بدون شکستن رفتار بگیرد.
  • I - Interface Segregation: اینترفیس‌های کوچک و تخصصی بهتر از یک اینترفیس بزرگ همه‌کاره‌اند.
  • D - Dependency Inversion: وابستگی به Abstraction (Interface)، نه پیاده‌سازی مشخص.

مثال نقض Open/Closed

// بد: با هر نوع تخفیف جدید باید این متد را ویرایش کرد
decimal GetDiscount(string type) =>
    type switch { "vip" => 0.2m, "normal" => 0.05m, _ => 0 };

// خوب: افزودن نوع جدید بدون تغییر کد قدیمی
interface IDiscountStrategy { decimal GetDiscount(); }
class VipDiscount : IDiscountStrategy { public decimal GetDiscount() => 0.2m; }

اشتباه رایج

❌ ساخت یک Interface بزرگ با چند متد نامرتبط که هر کلاس فقط بخشی از آن را نیاز دارد (نقض Interface Segregation). ✅ شکستن آن به چند Interface کوچک و تخصصی.

خلاصه

SOLID پنج اصل برای طراحی شی‌گرای قابل‌نگهداری است؛ Dependency Inversion پایهٔ Dependency Injection در ASP.NET Core است؛ نقض این اصول معمولاً کدی شکننده در برابر تغییر تولید می‌کند.

حالا امتحان کن

🧩آزمون اصول SOLID3 سؤال · نمره قبولی 60٪
این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←