الگوهای طراحی راه حل های قابل استفاده مجدد برای توسعه نرم افزار (Software) هستند. آنها به عنوان قالب (Template) عمل می کنند که برنامه نویسان می توانند هنگام ایجاد برنامه کاربردی (Application) از آن استفاده کنند. آنها مختص زبان برنامه نویسی (Programming Language) فردی نیستند، بلکه بهترین شیوه ها یا ابتکاری (Heuristic) هستند که می توانند در محیط های برنامه نویسی مختلف اعمال شوند.
در حالی که الگوهای طراحی زبان نیستند- وابسته، آنها اغلب شامل اشیاء یا کلاس (Class) می شوند. بنابراین، آنها معمولاً با برنامه نویسی شی گرا (OOP) مرتبط هستند. الگوهای فردی را می توان به سه دسته مختلف طبقه بندی کرد: 1) الگوهای خلقی، 2) الگوهای ساختاری، و 3) الگوهای رفتاری.
1. الگوهای خلاقانه
الگوهای طراحی خلاقانه روش هایی را برای ایجاد اشیاء با استفاده از روش هایی که برای موقعیت های مختلف مناسب هستند، توصیف می کنند. به عنوان مثال، الگوی "Singleton" برای ایجاد یک کلاس پایه که فقط یک نمونه خواهد داشت استفاده می شود. یک مثال رایج یک متغیر سراسری است که در کد منبع (Source Code) یک برنامه تعریف شده است. یک الگوی "Object Pool" برای ایجاد یک کلاس با یک "pool" از اشیاء استفاده می شود که می توانند در صورت نیاز به جای ایجاد مجدد، بازیابی شوند. این اغلب برای اهداف حافظه پنهان (Cache) استفاده می شود.
2. الگوهای ساختاری
الگوهای طراحی ساختاری روابط بین اشیاء را تعریف می کنند. به عنوان مثال، الگوی "Private Class Data" برای محدود کردن دسترسی به یک کلاس خاص استفاده می شود. این می تواند از تغییر ناخواسته یک شی جلوگیری کند. از طرف دیگر، کلاس "Decorator" اجازه می دهد تا رفتارها و حالت ها به یک شی در زمان اجرا (Runtime) اضافه شوند. این انعطاف پذیری را برای برنامه نویسان فراهم می کند تا به تعداد مورد نیاز کلاس ها را به یک شی اضافه کنند. یک نمونه آواتار (Avatar) در یک بازی ویدیویی است که سلاحها، زرهها و آیتمها را در طول بازی جمعآوری میکند. کلاس "Decorator" با نام مناسب چارچوب خوبی برای این فرآیند ارائه می دهد.
3. الگوهای رفتاری
الگوهای طراحی رفتاری رفتار اشیا را توصیف می کنند، مانند نحوه ارتباط آنها با یکدیگر. یک مثال الگوی "Command" است که اشیایی که دستورات را اجرا می کنند را توصیف می کند. الگوی "Memento" وضعیت یک شی را ثبت می کند تا بتوان آن را به حالت ذخیره شده خود بازگرداند. این دو الگو را می توان با هم برای انجام عملیات بازگشت (Undo) و Redo در یک برنامه استفاده کرد.
هر یک از سه دسته شامل چندین الگوی طراحی دیگر است که برنامه نویسان ارائه می دهند. می توانید استفاده کنید. در حالی که این الگوها الگوهای مفیدی را برای توسعه دهندگان نرم افزار فراهم می کنند، گاهی اوقات به دلیل غیر ضروری بودن یا به اندازه کافی خاص برای برنامه های خاص مورد انتقاد قرار می گیرند. بنابراین، در حالی که الگوهای طراحی ابزارهای مفیدی برای برنامه نویسی هستند، برای ایجاد یک برنامه نرم افزاری با طراحی خوب نیازی به رعایت دقیق آنها ندارند.
تعریف الگوی طراحی (Design Pattern) در این صفحه یک تعریف پایه نگاشته شده توسط تک بورد است. اگر مایل به ارجاع به این صفحه یا استناد به این تعریف هستید، با شرط درج لینک به این صفحه می توانید از این محتوا استفاده کنید.
هدف تک بورد توضیح اصطلاحات کامپیوتری به روشی است که به راحتی قابل درک باشد. ما برای سادگی و دقت با هر تعریفی که منتشر می کنیم تلاش می کنیم. اگر بازخوردی درباره تعریف الگوی طراحی (Design Pattern) دارید یا میخواهید یک اصطلاح فنی جدید پیشنهاد کنید، لطفاً با ما تماس بگیرید.
آیا می خواهید اصطلاحات فنی بیشتری یاد بگیرید؟ در خبرنامه روزانه یا هفتگی مشترک شوید و شرایط و آزمون های ویژه را در ایمیل خود تحویل بگیرید.