Singleton Pattern

singleton-pattern

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

Prototype Pattern

prototype-pattern

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

Factory Method Pattern

factory-method-pattern

این الگو همانند الگوی Abstract Factory میباشد با این تفاوت که هر کلاس Factory معمولاً تنها برای ایجاد یک کلاس خاص استفاده میشود. در برخی موارد کلاس Factory شامل یک متد استاتیک می‌باشد که وظیفه ایجاد کلاس مورد نظر بر اساس پارامتر ها را بر عهده دارد. (بیشتر…)

مفهوم 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

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