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

CopyClassLooseCoupling

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

Abstract Factory Pattern

abstract-factory-pattern

این الگو برای ایجاد کلاس‌های مشابه هم استفاده می‌شود تا وابستگی بین استفاده کننده (Client) و تأمین کننده کمتر شود. در‌واقع یک کلاس وظیفه ایجاد کلاس‌های دیگر را به عهده میگیرد. البته الزاماً این الگو شامل تنها یک کلاس سازنده نیست بلکه هر کلاس سازنده وظیفه ایجاد کلاس‌های مشابه هم را دارد و ممکن است در یک پروژه خاص چندین کلاس سازنده مختلف داشته باشیم. (بیشتر…)

Builder Pattern

builder-pattern

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

الگوهای طراحی چیست؟

designpattern

طی این مطالب سعی دارم به شرح الگوهای طراحی بپردازم. قبل از هر چیزی باید با مفهوم Design Patterns آشنا بشیم و بدونیم که دلیل وجود همچین الگوهایی چیه؟ در برنامه نویسی همه ما گاهی دچار مشکلات عجیب و غریبی می شیم که حل کردنشون زمان زیادی ازمون میگیره. برخی از این مشکلات هستند که خیلی بین برنامه نویسان متداولند. برای همین منظور الگوهای طراحی یا Design Patterns به وجود اومدند که هر کدوم از این الگو ها به منظور برطرف کردن مشکلات متداول برنامه نویسی ایجاد شدن. (بیشتر…)

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

segregatedInterfaces

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

مفهوم 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 به معنی اینکه از اینترفیس ها به خوبی استفاده کن! (بیشتر…)

برنامه نویس خوب-گام ششم-برنامه ی کاری

delay

سلام

اگر برنامه شما یک برنامه تجاری باشد، اینکه مشخص باشد در چه زمانی کار کد نویسی به پایان خواهد رسید اهمیت زیادی پیدا می کند. یکی از کارهای سختی که برای برنامه نویسی وجود دارد زمان بندی انجام آن است. برای برنامه نویسان بسیار سخت است که بتوانند زمان دقیق کامل شدن و نهایی شدن برنامه را پیش بینی کنند.

(بیشتر…)