محدثه سالم
محدثه سالم
خواندن ۲ دقیقه·۳ سال پیش

دیزاین‌پترن‌ها، بهترین راه حل برای مسئله های پرتکرار

دیزاین‌پترن‌ها، بهترین راه حل برای مسئله های پرتکرار
دیزاین‌پترن‌ها، بهترین راه حل برای مسئله های پرتکرار


دیزاین‌پترن‌ها، در‌ واقع یک راه‌حل یا استراتژی اثبات‌شده برای حل‌کردن یک مسئله یا انجام یک‌ وظیفه ی مشخص در زبان های شیءگرا (object oriented) هستند. اما این الگوهای‌طراحی، تنها ایده‌ی اصلی رفع یک مشکل را بیان می‌کنند و پیاده سازی مشخص ندارند. به همین دلیل وابسته به یک زبان خاص نیستند و می‌توانند در زبان‌های برنامه نویسی مختلف استفاده شوند.

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

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

دیزاین‌پترن ها به طور کلی به دو دسته تقسیم می‌شوند:

1- Core Java (or JSE) Design Patterns

2- JEE Design Patterns

هر یک از این دسته‌ها نیز به تنهایی شامل تقسیم‌بندی‌های مختلفی هستند که در این بخش به بررسی آنها می‌پردازیم:

دسته‌ی‌اول) Core Java (or JSE) Design Patterns

این دسته، شامل سه گروه از الگوهای‌طراحی به شکل زیر می باشد:

اول) Creational Design Pattern

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

دوم) Structural Design Pattern

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

در واقع این الگوها روی این موضوع تمرکز می کنند که کلاسها باید چگونه و با چه ترتیبی از یکدیگر ارث ببرند یا با هم ترکیب شوند تا روابطی که میخواهیم ایجاد شود.

سوم) Behavioral Design Pattern

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

دسته‌ی‌دوم) JEE Design Patterns

  • الگوهای طراحی J2EE برای توسعه برنامه های کاربردی مبتنی بر وب طراحی شده است و شامل سه دسته ی زیر می باشند:
  • Presentation Layer Design Pattern
  • Business Layer Design Pattern
  • Integration Layer Design Pattern


در بخش‌های بعد، الگوهای‌طراحی مربوط به هر دسته را به‌صورت دقیق توضیح خواهم داد. توصیه می‌کنم تا انتهای این سلسله پست‌ها با من همراه باشید.

design patternsدیزاین پترنالگوهای طراحیبرنامه نویسیشیء گرا
صفحه ی لینکدین من: https://www.linkedin.com/in/mohaddese-salem-27388318b
شاید از این پست‌ها خوشتان بیاید