مفهوم SOLID در برنامه نویسی – DIP

CopyClassLooseCoupling

DIP مخفف Dependency Inversion Principle و مفهومی است که وابستگی مستقیم کلاس های سطح بالا را به کلاس های سطح پایین منع میکند. به این منظور که اگر کلاس خاصی(high-level) که از کلاس های دیگر(low-level) استفاده می کند وابستگی مستقیمی با کلاس های low-level داشته باشد سبب بروز این مشکل خواهد شد که اگر کلاس low-level دیگری به مجموعه افزوده شود اجبارا کلاس high-level نیز بایستی تغییر کند. DIP برای حل این مشکل به وجود آمده است. (بیشتر…)

مفهوم SOLID در برنامه نویسی – ISP

segregatedInterfaces

یکی از اصول دیگر برنامه نویسی شی گرا و اصل سوم SOLID مفهوم ISP یا Interface Segregation Principle می باشد, به این معنی که برای استفاده از اینترفیس ها آنها را باید به اجزای کوچکتری تقسیم کرد. وقتی یک کلاس از یک اینترفیس بزرگ استفاده میکند ممکن است برخی از این متد ها در کلاس مورد نظر قابل استفاده نباشند. اما وقتی یک اینترفیس بزرگ به چند اینترفیس کوچک تقسیم می شود هر کلاس میتواند در صورتی که به اینترفیس خاصی نیاز داشت از آن استفاده نماید. با این امکان اگرچه تعداد اینترفیس ها بیشتر می شوند و ممکن است تکرار رخ دهد اما به دلیل اینکه منطق برنامه ما در اینترفیس ها اجرا نمی شود میتوان این مسئله را نادیده گرفت. در نهایت با رعایت این اصل امکان دیباگ و بررسی کد ها سرعت بیشتری خواهد داشت. (بیشتر…)

مفهوم SOLID در برنامه نویسی – LSP

solid-OOP

یکی از اصول دیگر برنامه نویسی شی گرا و اصل سوم SOLID مفهوم LSP یا Liskov Substitution Principle می باشد, به این معنی که هیچ کلاسی نباید رفتار کلاس والد را تغییر دهد. برای رعایت این اصل باید در نظر داشته باشیم که هر کلاسی میتواند از کلاس دیگر ارث بری کند به شرطی که رفتار کلاس والد را تغییر ندهند. (بیشتر…)

مفهوم SOLID در برنامه نویسی – OCP

open-close-principle

SOLID مخفف چند مفهوم مختلف هست که فهم این مطالب میتواند شما را در هنر برنامه نویسی به سطح پیشرفته تری برساند.

در این مطلب به  تشریح بخش دوم این مفاهیم خواهیم پرداخت. بخش دوم شامل مفهوم Open/Close Principle یا به طور خلاصه OCP می باشد.

منظور از OCP این است که برنامه نویس بایستی کلاس ها و اشیاء را طوری ایجاد نماید که همواره امکان گسترش (Extend) آن وجود داشته باشد اما برای گسترش نیازی به تغییر در کلاس های اصلی نباشد. یعنی اینکه کدها و کلاس ها بایستی همواره برای گسترش و اکستند شدن باز باشند اما برای ویرایش و تغییر بسته باشند. البته منظور از بسته بودن برای ویرایش این است که نیازی به تغییر کد ها نباشد. در بهترین حالت این اصل در برنامه نویسی شی گرا باعث کاهش ارتباطات کلاس ها و ماژول ها خواهد شد. در نهایت امکان توسعه از طریق افزودن کلاس های جدید و نه تغییر کلاس های موجود میسر خواهد شد. (بیشتر…)

مفهوم SOLID در برنامه نویسی – SRP

solid-OOP

SOLID مخفف چند مفهوم مختلف هست که فهم این مطالب میتواند شما را در هنر برنامه نویسی به سطح پیشرفته تری برساند.

S مخفف Single responsibility principle یا SRP به معنی اینکه هر کلاس بایستی فقط یک کار انجام دهد نه بیشتر, که در ادامه  توضیح خواهم داد.

O مخفف Open/closed principle یا OCP به معنی اینکه کلاس ها جوری نوشته بشن که قابل گسترش باشند اما نیاز به تغییر نداشته باشند. در مطالب بعد بیشتر توضیح خواهم داد.

L مخفف Liskov Substitution Principle یا LSP به مفهوم اینکه هر کلاسی که از کلاس دیگر ارث بری میکند هرگز نباید رفتار کلاس والد را تغییر دهد.

I مخفف Interface Segregation Principle با ISP به مفهوم اینکه چند اینترفیس کوچک و خورد شده همیشه بهتر از یک اینترفیس کلی و بزرگ است.

D مخفف Dependency inversion principle یا DIP به معنی اینکه از اینترفیس ها به خوبی استفاده کن! (بیشتر…)