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

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

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

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

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

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 به معنی اینکه از اینترفیس ها به خوبی استفاده کن! (بیشتر…)
مطالب دیگر
مفهوم DRY در برنامه نویسی
استفاده از PgBouncer در PostgreSQL
مفهوم SOLID در برنامه نویسی – OCP
مفهوم SOLID در برنامه نویسی - SRP
رفع ایرادات و اشکالات وب سرور Apache – بخش چهارم
رفع ایرادات و اشکالات وب سرور Apache – بخش سوم
رفع ایرادات و اشکالات وب سرور Apache - بخش دوم
رفع ایرادات و اشکالات وب سرور Apache - بخش اول
زند فریم ورک ۲ - ساختار
ORM چیست؟
زند فریم ورک 2 - مثالی در رابطه با Event Manager
OPcache چیست؟
زند فریم ورک ۲ - انواع تنظیمات
پروتکل AMQP چیست؟
APC چیست؟ چگونه سرعت پردازش را افزایش می دهد؟
یک صفحه وب چطور پردازش می شود؟ بخش دوم
یک صفحه وب چطور پردازش می شود؟ بخش اول
زند فریم ورک ۲ - Event Manager
Joel Test چیست؟
زند فریم ورک ۲ - Observer pattern
زند فریم ورک ۲ - AOP
زند فریم ورک ۲ - تنظیم سرویس ها
زند فریم ورک ۲ - Service Locator/Manager
برنامه نویس خوب-گام دوازدهم-استفاده از کد
برنامه نویس خوب-گام یازدهم-استخدام
زند فریم ورک ۲ - Dependency Injection
زند فریم ورک ۲ - Factory method pattern
زند فریم ورک ۲ - Lazy loading
برنامه نویس خوب-گام دهم-Tester
زند فریم ورک ۲ - MVC
زند فریم ورک ۲
برنامه نویس خوب-گام نهم-ابزار کار
برنامه نویس خوب-گام هشتم-محل برنامه نویسی
برنامه نویس خوب-گام هفتم-طراحی و اسناد
برنامه نویس خوب-گام ششم-برنامه ی کاری
برنامه نویس خوب – گام پنجم – حل مشکلات قبل از ایجاد بخش های جدید
برنامه نویس خوب - گام چهارم - نگهداری اطلاعات باگ ها
Composer چیست؟
برنامه نویس خوب - گام سوم - ایجاد برنامه از کد به صورت روزانه
برنامه نویس خوب - گام دوم - ایجاد برنامه اجرایی از کد