الگوهای طراحی برنامه نویسی – بخش اول: معرفی کلی

naeemaei الگوهای طراحی , ,

مقدمه

برخی مسائل(Problems) در طراحی نرم افزار و برنامه نویسی وجود دارند که شاید بسیاری از برنامه نویسان هر روز با آنها سر و‌ کار داریم. و گاهاً با راه حل هایی آنها را حل می کنیم. در اکثر علوم مهندسی برای مسائلی که مکررا با آن سر و کار دارند الگوهایی طراحی (Design Pattern) می کنند تا در زمان نیاز مجددا به دنبال طراحی راه حل های جدید نروند و از الگوهای موجود استفاده نمایند. بنابراین در علم مهندسی نرم افزار نیز الگوهایی وجود دارند که برای مسائلی که روزانه با آنها روبرو می شویم بهتر و لازم است به جای استفاده از روش آزمون و خطا از این الگو های دارای قابلیت استفاده مجدد استفاده کنیم. مثال معروفی که همیشه به آن اشاره می کنند این است که نباید چرخ را دوباره اختراع کنیم.

ضمناً الگوهای طراحی وابسته به هیچ زبان برنامه نویسی ی نیستند.

تعریف الگوی طراحی (Design Pattern)

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

مثال: شما در یک مسئله نیاز است یک لیست درختی که تعداد سطوح آن مشخص نیست را پیمایش کنید:

ساختار درختی

برای موارد فوق می توانید مسئله را از ابتدا حل کنید و راه حل ارائه دهید، اما می توانید از Composite Design Pattern  هم استفاده نمایید، البته این الگو هم از روشهای موجود استفاده می کند . اما آیا بهتر نیست بجای استفاده ار روش های آزمون و خطا از روش های آزمایش شده و مطمئن و قابل استفاده مجدد استفاده نمایید؟

Gang of Four چیست؟

در سال 1994 میلادی کتابی با عنوان Design Patterns: Elements of Reusable Object-Oriented Software توسط چهار نفر ملقب به گروه Gang of Four یا (GOF) نوشته شد که در آن Design Pattern های قابل استفاده مجدد در طراحی شی گرا معرفی شدند.

انواع الگوهای طراحی (Design Pattern)

الگوهای ایجادی یکی از کارهایی که همه برنامه نویسان انجام داده ایم وهله سازی، نمونه سازی، instantiation یا new کردن یک کلاس و ایجاد یک شی از آن است.

الگوهای ایجادی، کنترل نحوه ایجاد یک شی را در اختیار می گیرند و راه حلهایی برای ایجاد اشیا ارائه می دهد.

مثال ساده: فرض کنید می خواهید از یک شی فقط یک نمونه در تمام زمان اجرای برنامه ساخته شود و همه درخواست ها از این نمونه استفاده نمایند، بنابراین باید روشی وجود داشته باشد که تضمین کند از این کلاس فقط و فقط یک شی ایجاد خواهد شد.
راه کار چیست؟

Creational Design Patterns
الگوهای ساختاری

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

Structural Design Patterns
الگوهای رفتاری

زمانیکه بخواهیم بین کلاس ها ارتباط برقرار کنیم و یا رفتار کلاس ها را بهینه کنیم از این الگوها در طراحی استفاده می نماییم

Behavioral Design Patterns

لیست الگوهای طراحی که در پست های بعدی توضیح داده ایم

نوع الگو نام الگو
Creational Design Patterns الگوی طراحی Singleton

شاید دوست داشته باشید:

الگوهای طراحی برنامه نویسی -بخش دوم معرفی الگوی Singleton

یکی از ساده ترین الگوی های طراحی Singleton می باشد. یک کلاس زمانی Singleton است که بیش از یک شی از روی آن نتوان ساخت. در واقع این کلاس فقط یکبار نمونه سازی می شود و پس از آن از همان نمونه ساخته شده استفاده می کنیم.

به این نکته توجه کنید که کلاس دارای الگوی Singleton یک کلاس استاتیک نیست بلکه یک کلاس معمولی است که می تواند یک Interface را پیاده سازی کرده و یا از یک کلاس دیگر مشتق شود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *