در مهندسی نرمافزار، الگوی طراحی (Design Pattern) یک راهحل عمومی قابل تکرار برای مسائل و مشکلات متداول در یک زمینه در طراحی نرمافزار است. الگوی طراحی، یک طراحی تمامشده نیست که به صورت مستقیم بتواند تبدیل به کد منبع یا ماشین شود؛ بلکه، یک توضیح یا قالب برای حل یک مسئله در شرایط مختلف است. الگوها به عنوان بهترین روش ممکن که یک برنامهنویس میتواند در هنگام طراحی یک برنامه برای حل مشکلاتش استفاده کند، معرفی میشوند. الگوهای طراحی شیءگرا نوعاً نشاندهندۀ روابط و تعاملها بین کلاسها و شیءها هستند، بدون اینکه کلاسها یا اشیاء نهایی برنامه را مشخص کند. الگوهایی که در خود وضعیتهای تغییرپذیر دارند، شاید مناسب زبانهای برنامهنویسی تابعی نباشند. همچنین، در بعضی از زبانها که برای حل یک مسئله راهحلهای آمادۀ از پیش تعریفشده وجود دارد، استفاده از بعضی الگوها برای حل مسئلۀ مشابه میتواند لازم نباشد. به همین ترتیب، الگوهای طراحی شیءگرا ممکن است برای زبانهای غیر شیءگرا مناسب نباشند.
در دوره آموزشی ++Udemy Design Patterns Through C با الگوهای طراحی در سی پلاس پلاس آشنا می شوید.