Singleton Pattern

singleton-pattern

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

Prototype Pattern

prototype-pattern

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

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

designpattern

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

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

segregatedInterfaces

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

Joel Test چیست؟

JoelTest

تا کنون با عبارت Joel Test برخورد کرده اید؟ اگر در وب سایت های خارجی یک کار برنامه نویسی خوب را جستجو کنید به عبارت 12 Joel Test برخواهید خورد. Joel Spolsky موسس Stackoverflow.com برای برنامه نویسان 12 پیشنهاد ارایه کرده است که با رعایت این موارد میتوان گفت که شما برنامه نویس خوبی هستید و میتوانید با مقایسه توانمندی های خود با موارد زیر دید بهتری نسبت به سطح کد نویسی خود دست پیدا کنید : (بیشتر…)