مقدمه
الگوها راهحلهایی رایج برای مسایل معمول را در یک قالب ثابت مستند شده معرفی میکنند و معمولا به عنوان بخشی از یک مجموعه بزرگتر هستند. الگوها قسمتهای بنیادی از زندگی روزانه ما را تشکیل میدهند. ما هر روز بدون اینکه خبر داشته باشیم به طور طبیعی از راهحلهای ثابت برای حل مسایل مشترک استفاده میکنیم. الگوها از جمله مفاهیمی هستند که به طور گستردهای در علم کامپیوتر استفاده میشوند تا به طور خلاصه راهحلهای خوب را برای مسائلی که بصورت مکرر اتفاق میافتند توصیف کنند. وجود الگوهای مفهومی میتواند برای نمونههای واقعی بدون در نظر گرفتن تکنولوژیهای به کار گرفته شده، نظیر نرمافزار، میانافزار و یا زبان برنامه نویسی استفاده شود. الگوها در دنیای فناوری اطلاعات که حول طراحی سیستمهای خودکار در گردش است با نام الگوهای طراحی[۱] مشخص میشوند. ویژگیهای پایه الگویهای طراحی به شرح زیر است:
- الگوهایی که برای مسائل خاص ارائه شده، تست شده و بارها تکرار شده است و بعنوان یک تجربه موفق مطرح میشود
- انتخاب الگوها باید با دقت انجام شود، زیرا ممکن است این تجربه، پاسخگوی نیاز در یک مشکل دیگر نباشد
- انتخاب الگو باید با اندازهگیری همراه باشد تا بتوان تأثیر آن را در کسب و کار محاسبه کرد.
الگوهای طراحی به دلایل زیر سودمند هستند:
- راه حلهای آزمایش شده برای مسایل مشترک طراحی را بیان میکند.
- بینش طراحی را به صورت یک قالب استاندارد شده سازماندهی میکند.
- عموما توسط متخصصین فناوری اطلاعات که درگیر طراحی هستند قابل تکرار هستند.
- به منظور اطمینان از استحکام طراحی و ساخت یک سیستم میتواند مورد استفاده قرار بگیرد.
- میتواند به عنوان مبنایی برای طراحی استانداردها استفاده شود.
- عموما قابل انعطاف و اختیاری هستند.
- برای اهداف آموزشی از طریق مستند کردن ابعاد خاصی از طراحی سیستم قابل استفاده هستند.
- گاهی اوقات میتواند قبل و بعد از پیادهسازی سیستم به کار برده شود.
- میتواند از طریق الگوهای طراحی دیگر که قسمتی از همان مجموعه هستند پشتیبانی شود.
الگوهای طراحی فرهنگ لغات یک دامنه مشخص از فناوری اطلاعات را غنی میکند زیرا به هر الگو یک نام معنیدار نسبت داده میشود. این نکته در نظر گرفته شود که گرچه الگوها راهحلهای اثبات شدهای را برای طراحی ارائه میدهند ولی استفاده صرف از آنها نمیتواند تضمین دهد که مشکلات طراحی همیشه همانطور که خواسته شده حل شود. عوامل زیادی در موفقیت نهایی استفاده از الگوی طراحی نظیر، محدودیتهایی که توسط محیط اجرا بوجود میآید، نیازمندیهای کسبوکار واگرا و غیره تأثیر دارند. همه این ابعاد بیان شده بر میزان موفقیت بکارگیری یک الگو تأثیر میگذارد.
هدف اصلی این کتاب این است که به توسعه مداوم ایجاد الگوهای جدید برای گسترش فهرست الگوهای طراحی رایج رایانشابری کمک کند. برای دستیابی به این هدف شما را تشویق میکند که به کمک استفاده از فرم ترکیب الگوی کاندید، الگوهای کاندید خود را ارائه دهید. که برای این کار توصیه میشود که ابتدا الگوهای کاندید موجود را با دقت بررسی کنید تا از ارائه الگوی تکراری جلوگیری شود. الگوهای کاندید میتوانند ایدههایی برای الگویهای طراحی یا الگوی جدید باشند که قبلا با موفقیت اجرا شدند اما موفقیت آنها به طور کامل اثبات نشده است. در ادامه تعدادی از الگوهای را، در مراحل مختلف از توسعه شان آورده شده است که بیشتر آنها به طور کامل به عنوان الگو در فهرست رسمی الگوهای طراحی مستند نشدهاند.
- Design Pattern ↩