Home » Design Pattern » دیزاین پترن چیست؟

دیزاین پترن چیست؟

بعد از این که زبان های برنامه نویسی مختلفی رو مورد بررسی قرار دادیم حال به سراغ اصطلاحات و مباحث مربوط به برنامه نویسی آمده ایم. در این مقاله به سراغ دیزاین پترن (Design Pattern) رفته ایم و میخواهیم جواب سوال دیزاین پترن چیست؟ رو به صورت دقیق دهیم و در مورد انواع دیزاین پترن ها صحبتی داشته باشیم. پس اگر میخواهید در مورد دیزاین پترن (Design Pattern) بیشتر بدونید پیشنهاد میکنم این مقاله رو تا انتها مطالعه کنید.

دیزاین پترن چیست؟

دیزاین پترن چیست؟

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

نکته مهم: دیزاین پترن (Design Pattern) را می شود نوعی الگوی طراحی در برنامه نویسی تعریف کرد.

دیزاین پترن یک کلاس برنامه نویسی یا یک کتابخانه و یا حتی یک تابع در برنامه که ما به کدهایمان اضافه می کنیم نیست. اینو باید متذکر شوم که دیزان پترن نه کلاس برنامه نویسی است نه یک کتابخانه و حتی یک تابع در برنامه که ما به کدهایمان اضافه می کنیم نیست. دیزاین پترن یه قالب است که باید در شرایطی درست از آن استفاده کنیم و همچنین مستقل از زبان برنامه نویسی می باشد.

نکته۱: یک دیزاین پترن خوب باید قابلیت پیاده سازی روی اکثر زبان های برنامه نویسی (نسبت به قابلیت های آن زبان) را داشته باشد.

توجه: میتوان دیزان پترن رو به یک چاقو تیز و برنده تشبیع کرد اگر به صورت درست و دقیق از آن استفاده کنیم می تواند فرشته نجات توسعه دهندگان و برنامه نویسان باشد و اگر اشتباه از آن استفاده شود میتواند کشنده باشد و باعث مشکلات عجیب و زیاد در برنامه نویسی شود، که همین امر باعث خرابی پروژه می شود. (نحوه استفاده از دیزاین پترن به شدت مهم است)

مثال برای دیزاین پترن (Design Pattern) :

فکر کنید میخواهیم ۱۰۰۰ تا ۵ رو با هم جمع کنیم، جمع کردن ۱۰۰۰ تا ۵ با هم زمان بر خواهد بود. پس بهتر از یک مفهوم به نام ضرب استفاده کنیم که در ظاهر قوانین متفاوتی هم دارد ولی در ذات خودش همون جمع هست. استفاده از ضرب برای جمع کردن عددهای یکسان یک الگوی طراحی حساب می شود. ضرب به خودی خود معنی نداره و قابل لمس نیست، بلکه ضرب دو یا چند عدد در هم معنی دارد. پس میتوان گفت دیزاین پترن به خودی خود معنی ندارد و صرفا فقط یک رویکرد است.

انواع دیزاین پترن ها

انواع دیزاین پترن ها

در بخش زیر انواع مختلفی از الگو‌های طراحی رو مورد بررسی قرار میدهیم.

  • الگوهای تکوینی (Creational Patterns)
  • الگوهای ساختاری (structural patterns)
  • الگوهای رفتاری (behavioral patterns)
  • الگوهای همزمانی (Concurrency patterns)

الگوهای تکوینی (Creational Patterns)

این الگو‌ها همونطوری که از اسمشون هم مشخصه راه‌حل‌هایی رو در ایجاد اقلام مختلف مثل متدها، نمونه‌ها و… برای ما تعریف می‌کنند. 

الگوهای ساختاری (structural patterns)

این دسته از پترن‌ها این امکان رو به ما میدن که به شکل بهینه‌تری بین ساختارها، متدها، کلاس‌ها و اساسا هر موجودیتی که در زبانمون داریم ارتباط برقرار کنیم.

الگوهای رفتاری (behavioral patterns)

الگوهای رفتاری هم به رفتار Entityهامون (موجودیت‌ها شامل کلاس، متد، نمونه، اینترفیس و…) نسبت به مسائل مختلف میپردازند. مسئله میتواند تغییر یک entity دیگه باشد یا میتواند تغییر state داخل خود entity باشد.

الگوهای همزمانی (Concurrency patterns)

الگوهایی که به همزمانی رویدادها در خلال اجرای برنامه می‌پردازند. این الگوها از نظر من یک مرحله پیشرفته‌تر از الگو‌های قبلی هستند.

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

Add a Comment

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *