آموزش الگوهای طراحی در تولید نرم افزار با زبان سی شارپ C#
8 ساعت
3.2
طراحی الگو در مهندسی نرمافزار، یک راهکار برای حل مسائل مستقل از زبان برنامهنویسی و مشابه با یکدیگر است. همانطور که بیان شد، این مشکلات و راهحلها چند خصوصیت مشابه دارند: 1) به دلیل این که زیاد رخ دادهاند، توسعهدهندگان به آنها نام دادهاند که این خود باعث میشود که اگر از راهحلی دارای نام و معروف استفاده کردید، برای بحث با همکار خود، مجهز به مجموعهای از کلیدواژهها باشید که تنها با نام بردن آن بتوانید به همکار توسعهدهنده خود توضیح دهید که از چه راهکاری برای حل مشکل موجود در یک قسمت نرمافزار استفاده کردهاید و یا حتی نام این راهحلها، راه خود را به نامهای موجود در کدهای شما هم پیدا میکنند که مثلا در نرمافزار خود، کلاسهایی با نام TaskDecorator و… دارید و به این روش سایر همکاران شما متوجه میشوند که از راهحل Decorator، برای ساخت یک Object در برنامه خود استفاده کردهاید. 2) به همان دلیل قبلی، همیشه میتوان شرحی از مشکل را ارائه داد که خوانایی زیادی با شکلهای دیگر همین مشکل دارند. به همین دو دلیل، شما هرگاه در توسعه نرمافزار با مشکل روبرو شدید، میتوانید لیست نام مشکلات را به همراه توصیفی کوتاه از خود مشکل ببینید و اگر مورد شما با مورد لیست شده تا حدی خوانا بود، با مراجعه به راهحل آن مشکل، آن را طوری تغییر دهید که مشکل شما را نیز حل کند. 3) راهحلهای ارائه شده همگی تست شده هستند و وقت شما برای راستیآزمایی آن راهحل هدر نمیرود. 4) این راهحلها، مستقل از زبان برنامهنویسی هستند. اگر شما صرفا از نظر تئوریک، راهحل ارائه شده برای یک مشکل را درک کنید، میتوانید آن را به زبان برنامهنویسی مورد نظر خود پیادهسازی کنید. الگوهای طراحی، جزو معماریهای نرمافزاری نیستند، بلکه یک روش صحیح از کدنویسی شیگرا هستند که به وسیله برنامهنویسانی با تجربه توسعه داده شدهاند. توانایی کار با الگوهای طراحی به وسیله یک برنامهنویس، یک ابزار بسیار کاربردی، ضروری و به عنوان وجه تمایز نسبت به دیگر برنامهنویسها به شمار میآید. برنامهنویسان با به کارگیری الگوهای طراحی میتوانند نرمافزارهای انعطافپذیر، قابل توسعه و مقیاسپذیر را به صورت اصولی طراحی کنند. الگوهای طراحی اولین بار توسط کریستوفر الکساندر (Christopher Alexander) ارائه شده است. پس از آن در سال 1994 گروهی به اسم Gang of Four، الگوهای طراحی را به 23 الگوی طراحی و به سه دسته عمومی: ,Creational Design Patterns, Structural Design Patterns Behavioral Design Patterns تقسیمبندی کردند و به صورت یک کتاب منتشر کردند تا به معرفی و آموزش آنها بپردازند. الگوهای طراحی برای حل مشکلی مشخص در فرایند برنامهنویسی کاربرد دارد که باید بتوانیم آن مشکلات را حین توسعه نرمافزار شناسایی کرده و روش متناسب با مشکلات موجود را انتخاب نموده و مساله را حل کنیم. مزایای استفاده از الگوهای طراحی نرمافزار عبارتند از: افزایش مقیاسپذیری (Scalability) افزایش قابلیت توسعهپذیری (Expandability) افزایش انعطافپذیری (Flexibility) افزایش سرعت توسعه نرمافزارها کاهش خطاها و مشکلات کاهش میزان کدنویسی