HamidReza Ireh

حمیدرضا ایره

HamidReza Ireh

حمیدرضا ایره

۱۵ مطلب با موضوع «Design Pattern» ثبت شده است

حوزه: Object
هدف: Behavioral
نقش الگو
این الگو یک الگوی رفتاری یا Behavioral می‌باشد. الگوهای رفتاری با الگوریتم‌ها و ارتباط بین آن‌ها درگیر می‌باشند. اگر برنامه ما یک الگوریتم یکتا را پیاده سازی می‌کند گرچه ممکن است از چندین کلاس استفاده کند ولی به خاطر بالا رفتن پیچیدگی ممکن است که برای مدیریت برنامه و نگهداری کد مشکلاتی به جود بیاید. ما با استفاده از الگوهای طراحی رفتاری سعی می‌کنیم که از این پیچیدگی ها کم کنیم.

حوزه: Object
هدف: Behavioral
نقش الگو

حالتی را تصور کنید که چند شی در برنامه وجود دارد که تغییر حالات یک شی دیگر را دنبال می‌کنند و با توجه به هر تغییر عملی را انجام می‌دهند. شاید اولین راه حلی که در این حالت یافت شود، این است که اشیا در یک حلقه، شی مورد نظر را بررسی کنند تا اگر تغییری به وجود آمده بود با توجه به آن کاری انجام دهند. اما این بدترین راه حل است و باعث افت کارایی و همچنین طراحی بد برنامه خواهد شد. برای حل این مسئله الگوی Observer معرفی می‌شود.

حوزه: Object
هدف: Structural
نقش الگو
GOF(Gang of Four) این الگو را به این شکل تعریف کرده‌اند که "با استفاده از Builder Pattern، ساختار (construction) اشیاء پیچیده را از نمایش (representation) آن جدا می‌کنیم. بنابراین می‌توان با یک فرایند ساخت، چند نمایش مختلف ایجاد کرد ". همانطور که از نام آن مشخص است، از این الگو برای ساخت اشیاء به صورت جزء به جزء یا به عبارت دیگر مرحله به مرحله استفاده می‌شود. منطق پیچیده ساخت شی از client جدا شده است و client با ارسال مجموعه‌ای از جزئیات، شی و اطلاعات مورد نیاز را بدست می آورد.

حوزه: Object / Class
هدف: Structural
نقش الگو
همان گونه که از اسم این الگو مشخص است، هنگامی که دو کلاس واسط(Interface) های غیرمرتبط با یکدیگر داشته باشند این الگو واسط یکی را به دیگری تبدیل می‌کند که بتوانند با یکدیگر ارتباط برقرار کند. از این الگو که یک الگوی ساختاری است زمانی استفاده می‌شود که بخواهیم در یک برنامه، دو کلاس غیرمرتبط با یکدیگر کار کنند.

حوزه: Object

هدف: Creational

نقش الگو
حالتی را در نظر بگیرید که کلاسی دارید که می‌خواهید در کل برنامه خود فقط یک شی از این کلاس ساخته شود و اجازه ساخته شدن نمونه جدید به استفاده کنندگان از این کلاس داده نشود. این عمل در مواقعی بسیار لازم و ضروری است. به طور مثال حالتی را درنظر بگیرید که در برنامه کلاسی وجود دارد که واسط تنظیمات برنامه است یعنی برنامه هنگام لود شدن تنظیمات خود را در آن بارگزاری می‌کند.

حوزه: Object

هدف: Creational

نقش الگو
همانطور که در الگوی طراحی Factory Method مشاهده شد، این الگو یک عیب دارد، آن هم این است که از کدام Creator باید استفاده شود و مستقیما در کد بایستی ذکر شود. برای حل این مشکل می‌توانیم سراغ الگوی طراحی دیگری برویم که Abstract Factory نام دارد. این الگوی طراحی 4 بخش اصلی دارد.