توضیح اصول پنج گانه برنامه نویسی بدون یک خط کد

اصول S.O.L.I.D  به زبان بسیار ساده
اصول S.O.L.I.D به زبان بسیار ساده

در این مقاله شما بسیار سطحی و خلاصه شده با اصول سالید آشنا خواهید شد، اگر با کلیات SOLID آشنایی ندارید پیشنهاد می کنم ابتدا مقاله مقدمه ای بر SOLID را مطالعه کنید.


اصل اول : (SRP) The Single Responsibility Principle

این اصل می‌خواهد بگوید که هر کلاسی، هر تابعی یا هر موجودیت دیگری فقط باید یک مسئولیت داشته باشد. چند مسولیتی ناقض این اصل است.(مشاهده توضیح بیشتر)


اصل دوم: The Open-Closed Principle (OCP)

هر موجودیت نرم‌افزاری اعم از کلاس، تابع، ماژول و … باید برای توسعه باز و برای اصلاح بسته باشد. یعنی برنامه ی ما بدون اینکه متد یا کلاسی را ویراش کنیم بتواند توسعه یابد .

مثال : استفاده از اینترفیس برای تعیین متغییر مشترک بین آبجکت ها جهت استفاده در کلاس یا متد نهایی و در نهایت هیچ وقت متد نهایی ویرایش نخواهد شد . به طوری که با آبجکت جدید نیز بتواند کارش را انجام دهد.(مشاهده توضیح بیشتر)

اصل سوم : (LSP) The Liskov Substitution Principle

اگر S زیرکلاسی از T باشد، اشیائی از نوع T را باید بتوان با اشیائی از نوع S جایگزین کرد.

مثال:کلاس والد باید به نحوی شکسته شوند که بتوان شیء ای از نوع والد جایگزین فرزندش شود.این شکستن میتواند یک فرزند-دیگر باشد که ویژگی خاصی دارد که پدرش ندارد.آنگاه این فرزند-دیگر اگر فرزند-جدید داشته باشد میتواند شیء ای از خودش را جایگزین فرزند-جدید کند.(مشاهده توضیح بیشتر)

اصل چهارم : (ISP) The Interface Segregation Principle

کلاینت‌ها نباید به متدهایی وابسته باشند که نیازی به آن‌ها ندارند.

مثال: اینترفیس های بزرگ با چندین متد به اینترفیس هایی کوچک‌تر شکسته شوند تا کلاینت ها به واسطه فراخوانی متدهای بلا استفاده شلوغ نشوند.(مشاهده توضیح بیشتر)


اصل پنجم : The Dependency Inversion Principle (DIP)

ماژول‌های سطح بالای برنامه نباید به ماژول‌های سطح پایین آن وابسته باشند .

مثال: ساخت شیء از یک کلاس در کلاس دیگر ایجاد وابستگی می کند . برای رفع وابستگی از اینترفیس استفاده میکنیم به نحوی که کلاس‌هایی که لازمشان داریما را از یک اینترفیس ایمپلمنت میکنیم و در کلاس اصلی بجای ساخت شیء از کلاس‌ها , یک شیء از اینترفیس میسازیم و با متدی مشخص میکنیم که کدام کلاس را برای ادامه مدنظر داریم.(مشاهده توضیح بیشتر)