سالید (طراحی شیءگرا)

سالید (تک وظیفه‌ای، باز ـ بسته، جایگزینی لیسکُوْ، تجزیهٔ رابط، وارونگیِ وابستگی) یک سرواژه یادیار است که توسط مایکل فیدر برای اشاره به «پنج اصل اول» رابرت سی مارتین در اوایل دههٔ ۲۰۰۰، معرفی شد. این یادیار مخفف پنج اصل اساسی برنامه‌نویسی و طراحی شیءگرا می‌باشد. وقتی این اصول با هم در طراحی و پیاده‌سازی یک برنامه اعمال می‌شوند، به احتمال قریب به یقین آن سیستم قابلیت این را خواهد داشت که به آسانی قابل توسعه‌پذیری و نگهداری باشد. در حقیقت اصول سالید، دستورالعمل‌هایی هستند که می‌توان هنگام کار بر روی یک نرم‌افزار، آن‌ها را برای از بین بردن، عوامل نامطلوب در کد، اعمال کرد. اینکار از طریق فراهم آوردن چارچوبی انجام می‌گیرد که با استفاده از آن برنامه‌نویس می‌تواند متن برنامه را اصلاح و بازسازی کندتا کد برنامه خوانا و توسعه‌پذیر شود. این اصول بخشی از راهبرد توسعهٔ نرم‌افزار چابک و تطبیقی می‌باشند.

حرف اولمخففمفهومSSRPاصل یگانگی مسئولیت
یک کلاس باید تنها یک وظیفه داشته باشد (یک کلاس باید تنها یک دلیل برای تغییر داشته باشد و نه بیشتر)OOCPاصل باز ـ بسته
اجزای نرم‌افزار باید نسبت به توسعه باز (یعنی پذیرای توسعه باشد) و نسبت به اصلاح بسته باشند (یعنی پذیرای اصلاح نباشد). (یعنی مثلاً برای افزودن یک ویژگی جدید به نرم‌افزار نیاز نباشد که بعضی از قسمت‌های کد را بازنویسی کرد، بلکه بتوان آن ویژگی را مانند افزونه به راحتی به نرم‌افزار افزود)LLSPاصل جانشینی لیسکوف
اشیاءِ یک برنامه که از یک کلاس والد هستند، باید به راحتی و بدون نیاز به تغییر در برنامه، قابل جایگزینی با یکدیگر باشند.IISPاصل تفکیک رابط‌ها
استفاده از چند رابط که هر کدام، فقط یک وظیفه را بر عهده دارد بهتر از استفاده از یک رابط چند منظوره است.DDIPاصل وارونگی وابستگی
بهتر است که برنامه به تجرید(abstraction) وابسته باشد نه پیاده‌سازی

 منابع 
ویکی‌پدیای انگلیسی
رده:طراحی نرم‌افزار
رده:برنامه‌نویسی شیءگرا
رده:اصول برنامه‌نویسی