20 نکته الگوی طراحی نرم افزار

20 نکته الگوی طراحی نرم افزار

20 نکته الگوی طراحی نرم افزار

 

1 – الگوهای طراحی چیست؟

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

 

2 – باند چهار (GOF) چیست؟

در سال 1994، چهار نویسنده، اریش گاما، ریچارد هلم، رالف جانسون و جان ولیسیدز کتابی با عنوان الگوهای طراحی – عناصر نرم افزار شی گرا با قابلیت استفاده مجدد منتشر کردند که مفهوم الگوی طراحی را در توسعه نرم افزار آغاز کرد. این نویسندگان در مجموع به عنوان باند چهار (GOF) شناخته می شوند.

 

3 – انواع الگوهای طراحی

الگوهای طراحی را می توان در سه دسته الگوهای خلاقانه، ساختاری و رفتاری طبقه بندی کرد.

الگوهای خلاقانه – این الگوهای طراحی راهی برای ایجاد اشیا در حالی که منطق ایجاد را پنهان می کنند، به جای نمونه سازی مستقیم اشیاء با استفاده از opreator جدید ارائه می دهند. این به برنامه انعطاف‌پذیری بیشتری در تصمیم‌گیری اینکه کدام اشیاء باید برای یک مورد خاص ایجاد شود، می‌دهد.

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

الگوهای رفتاری – این الگوهای طراحی به طور خاص با ارتباط بین اشیاء مرتبط هستند.

 

4 – الگوی کارخانه چیست؟

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

در پترن Factory، بدون اینکه منطق ایجاد را در معرض کلاینت قرار دهیم، شی ایجاد می کنیم و با استفاده از یک رابط مشترک به شی جدید ایجاد شده ارجاع می دهیم.

 

5 – الگوی Abstract Factory چیست؟

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

در الگوی Abstract Factory یک رابط مسئول ایجاد کارخانه ای از اشیاء مرتبط بدون مشخص کردن صریح کلاس های آنها است. هر کارخانه تولید شده می تواند اشیاء را مطابق با الگوی کارخانه ارائه دهد.

 

6 – الگوی سینگلتون چیست؟

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

این الگو شامل یک کلاس واحد است که وظیفه ایجاد یک شی را بر عهده دارد و در عین حال مطمئن می شود که تنها شیء واحد ایجاد می شود. این کلاس راهی برای دسترسی به تنها شی خود ارائه می دهد که می توان مستقیماً بدون نیاز به نمونه سازی شی کلاس به آن دسترسی داشت.

 

7 – چگونه می توان کلاس Singleton را در جاوا ایجاد کرد؟

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

 

8 – تفاوت بین کلاس استاتیک و کلاس سینگلتون چیست؟

در ادامه تفاوت‌های کلاس استاتیک و کلاس سینگلتون آورده شده است.

یک کلاس استاتیک نمی تواند یک کلاس سطح بالا باشد و نمی تواند رابط هایی را در جایی که یک کلاس singleton می تواند پیاده سازی کند.

همه اعضای یک کلاس استاتیک ایستا هستند اما برای یک کلاس Singleton الزامی نیست.

یک کلاس استاتیک زمانی که بارگذاری می شود مقداردهی اولیه می شود، بنابراین نمی توان آن را با تنبلی بارگذاری کرد، جایی که یک کلاس singleton می تواند با تنبلی بارگذاری شود.

یک شی کلاس ایستا در پشته ذخیره می شود در حالی که شی کلاس singlton در فضای حافظه پشته ذخیره می شود.

 

9 – برخی از الگوهای طراحی استفاده شده در کتابخانه JDK

در زیر برخی از الگوهای طراحی استفاده شده در کتابخانه JDK آورده شده است.

الگوی دکوراتور توسط کلاس های Wrapper استفاده می شود.

الگوی Singleton توسط کلاس های Runtime، Calendar استفاده می شود.

الگوی کارخانه توسط کلاس Wrapper مانند Integer.valueOf استفاده می شود.

الگوی مشاهده گر توسط چارچوب های مدیریت رویداد مانند swing، awt استفاده می شود.

 

10 – مزیت الگوی کارخانه چیست؟

الگوی کارخانه جزئیات پیاده‌سازی را در بر می‌گیرد و پیاده‌سازی زیربنایی را می‌توان بدون هیچ تاثیری بر api تماس‌گیرنده تغییر داد.

بیشتر بخوانید( آموزش برنامه نویسی )

11 – الگوی سازنده چیست؟

الگوی سازنده یک شی پیچیده را با استفاده از اشیاء ساده و با استفاده از رویکرد گام به گام می سازد. این سازنده مستقل از اشیاء دیگر است.

 

12 – الگوی اولیه چیست؟

الگوی پروتوتایپ به ایجاد شیء تکراری و در عین حال در نظر گرفتن عملکرد اشاره دارد. این الگو شامل پیاده سازی یک رابط نمونه اولیه است که می گوید یک کلون از شی فعلی ایجاد کنید.

 

13 – چه زمانی از الگوی اولیه استفاده می شود؟

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

 

14 – الگوی آداپتور چیست؟

الگوی آداپتور به عنوان پلی بین دو رابط ناسازگار عمل می کند. این الگو شامل یک کلاس واحد است که مسئول پیوستن به عملکردهای رابط های مستقل یا ناسازگار است.

 

15 – مثالی از الگوی آداپتور

یک مثال واقعی می تواند یک کارت خوان باشد که به عنوان یک آداپتور بین کارت حافظه و لپ تاپ عمل می کند. شما کارت حافظه را به کارت خوان و کارت خوان را به لپ تاپ وصل می کنید تا کارت حافظه از طریق لپ تاپ قابل خواندن باشد.

 

16 – الگوی پل چیست؟

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

این الگو شامل یک رابط است که به عنوان یک پل عمل می کند که عملکرد کلاس های بتنی را از کلاس های پیاده کننده رابط مستقل می کند. هر دو نوع کلاس را می توان از نظر ساختاری بدون تأثیر بر یکدیگر تغییر داد.

 

17 – الگوی فیلتر چیست؟

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

 

18 – الگوی کامپوزیت یا ترکیبی چیست؟

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

این الگو کلاسی را ایجاد می کند که شامل گروهی از اشیاء خود است. این کلاس راه هایی را برای اصلاح گروه اشیاء مشابه خود ارائه می دهد.

 

19 – الگوی دکوراتور چیست؟

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

این الگو یک کلاس دکوراتور ایجاد می کند که کلاس اصلی را می پیچد و عملکرد اضافی را فراهم می کند تا امضای روش های کلاس را دست نخورده نگه دارد.

 

20 – الگوی نما چیست؟

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

این الگو شامل یک کلاس واحد است که روش های ساده شده مورد نیاز مشتری را ارائه می دهد و فراخوانی ها را به روش های کلاس های سیستم موجود واگذار می کند.

درباره این مقاله: 

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

دسترسی به این امکان وجود ندارد.