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

 

Gang of Four (GOF) چیست؟

در سال 1994 ، چهار نویسنده اریچ گاما ، ریچارد هلم ، رالف جانسون و جان ولیسیدس کتابی با عنوان الگوهای طراحی – عناصر نرم افزارهای قابل استفاده مجدد برای شیء (Design Patterns – Elements of Reusable Object-Oriented Software) منتشر کردند که مفهوم الگوی طراحی را در توسعه نرم افزار آغاز کرد.

این نویسندگان در مجموع به Gang of Four (GOF) معروف هستند. به گفته این نویسندگان ، الگوهای طراحی اساساً بر اساس اصول زیر طراحی شی گرا است.

برنامه به یک رابط پیاده سازی نیست

ترکیب شی را بر ارث برتری دهید

 

استفاده از الگوی طراحی

الگوهای طراحی دو کاربرد اصلی در توسعه نرم افزار دارند.

 

بستری مشترک برای توسعه دهندگان

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

 

بهترین شیوه ها

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

 

انواع الگوهای طراحی

بر اساس کتاب مرجع الگوهای طراحی الگوهای طراحی – عناصر نرم افزارهای شیءگرا و قابل استفاده مجدد ، 23 الگوی طراحی وجود دارد که می توانند در سه دسته Creational, Structural , Behavioral  طبقه بندی شوند. ما همچنین در مورد دسته دیگری از الگوهای طراحی بحث خواهیم کرد: الگوهای طراحی J2EE.

 

Pattern  Description
1 Creational Patterns
این الگوهای طراحی راهی برای ایجاد اشیاء در حالی که منطق ایجاد را پنهان می کند ، ارائه می دهد ، نه اینکه به طور مستقیم اشیاء را با استفاده از اپراتور جدید نشان دهد. این به برنامه انعطاف پذیری بیشتری می دهد تا تصمیم بگیرد که کدام اشیاء باید برای یک مورد استفاده خاص ایجاد شوند.
2 Structural Patterns
این الگوهای طراحی مربوط به ترکیب کلاس و شی است. مفهوم وراثت برای ایجاد واسط ها و تعریف روش هایی برای ایجاد اشیاء برای به دست آوردن عملکردهای جدید استفاده می شود.
3 Behavioral Patterns
این الگوهای طراحی به طور خاص به ارتباط بین اشیاء مربوط می شود.
4 J2EE Patterns
این الگوهای طراحی به طور خاص به سطح ارائه مربوط می شود. این الگوها توسط Sun Java Center شناسایی می شوند.

برای مشاهده منبع اصلی این محتوا میتوانید به این لینک مراجعه کنید.