مقدمه ای بر الگوهای طراحی
منبع : (professional php5 ,wiley publishing)
در فصلهای پیشی (فصلهای قبلی از همین منبع) یاد گرفتید که اشیا می توانند از اشیاء پدر بوسیله ارث بری مشتق شوند. همچنین دیدید که اشیا میتوانند ارجاء هایی به اشیاء دیگر را نیز شامل شوند. بطور کلی تکنیک ترکیب کردن اشیاء از اشیاء دیگر را در اصطلاح ترکیب اشیاء می نامند (object composition).
هر دوی ارث بری و ترکیب اشیاء ابزارهای قدرتمندی برای طراحی نرم افزار های شی گرا هستند و امکان وسیعی برای انتخاب طراحی (نوع طراحی ) فراهم می کنند. البته داشتن گستردگی انتخاب همیشه تصمیم گیری را آسانتر نمی کند! شما نرم افزارتان را چگونه طراحی میکنید که نگهداری و توسعه پذیری آسانی داشته باشد؟ اجزاء برنامه تان را چگونه طراحی میکنید که افراد دیگر تیم براحتی با استفاده از یک واسط ساده بتوانند از آن استفاده کنند؟ شما میتوانید مشکلات معینی را خودتان با استفاده از هوش ، تجربه ، خوش شانسی و ترکیبی از این ها حل کنید.
ممکن است شما از کدهای موجود نوشته شده توسط خودتان برای حل مشکلی استفاده کنید. شاید شما اسکریپت استانداردی برای اتصال به پایگاه داده داشته باشید. الگوهای طراحی اندکی متفاوت هستند، آنها درباره استفاده مجدد از کد نیستند، آنها خیلی کلی تر از این هستند. الگوهای طراحی درباره استفاده مجدد از ایده ها هستند. وقتی شما یک الگو را بشناسید ، تشخیص خواهید داد که در کجا سودمند خواهد بود. سپس میتوانید پیش بروید و آنرا پیاده سازی کنید، با علم به اینکه یک راه حل پذیرفته شده است.
یک الگوی طراحی راهی برای حل یک مشکل مرسوم است. روشی است که نشان می دهد که یک شی یا مجموعه ای از اشیاء ساخت یافته چگونه با اشیاء دیگر موجود در الگو همکاری و ارتباط برقرار می کند.
هر الگو نامی توصیف کننده دارد ، مانند مشاهده گر (observer) یا مشاهده شونده (observable) و هر الگو طراحی مشخصی دارد که بوسیله نمودار کلاس نمایش داده می شود(نمودار کلاس یکی از نمودارهای زبان UML می باشد).
ممکن است دز ابتدا الگوها در ابتدا گیج کننده به نظر برسند. اگر این مقدمه اولیه واضح به نظرتان نرسید نگران نباشید ، شما در این فصل روی 5 الگوی متفاوت بر مبنای کدهایی که در چند فصل گذشته دیدید، کار خواهید کرد.
-----
ببخشید اگه خوب ترجمه نکردم!
بطور خلاصه الگوهای طراحی روشهای مرسوم و از قبل تعریف شده ای برای حل مشکلات و مسائل مرسومی هستند که شما حین انجام پروژه هاتون بهشون برخورد میکنید ، مثلا الگوی singleton موقعی کاربرد داره که شما بخواید از یک کلاس در یک زمان فقط یک شی وجود داشته باشه، الگوی factory وقتی مفیده که بخواین از یک کلاس برای ایجاد اشیائی از کلاسهای متفاوت استفاده کنید و ...