آموزش انواع دیزاین پترن (Design Pattern) در جاوا

انواع دیزاین پترن (Design Pattern) در جاوا
تاریخ بروزرسانی : 23 مرداد 1399 | تعداد بازدید : 6615 | زمان خواندن مقاله : 10دقیقه
جاوا،

دیزاین پترن در جاوا را میتوان حلال مشکلات شی گرایی دانست.
در حال حاضر، یک سوال در ذهن شما مطرح خواهد شد که این چه نوع مشکلی است؟ بگذارید با یک مثال توضیح دهیم:

 

مشکل مطرح شده:

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


راه حل:

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

آموزش جاوا

مزیت دیزاین پترن ها در جاوا :

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

چه زمانی ما باید از دیزاین پترن در جاوا استفاده کنیم؟

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

طبقه بندی دیزاین پترن ها:

در جاوا، عمدتا سه نوع الگوهای طراحی وجود دارد که به بخش های زیر تقسیم می شوند:
  • الگوهای طراحی جاوا یا JSE
  • الگوی طراحی JEE
  • الگوهای طراحی هسته جاوا
انواع دیزاین پترن ها در جاوا

1. دیزاین پترن Creational در جاوا

این الگوهای طراحی، مربوط به نمونه سازی کلاس یا ایجاد شی است. این الگوها را می توان بیشتر به الگوهای کلاسی-کلاسیک و الگوهای خلاقیت-شکلی تقسیم کرد. در حالی که الگوهای ایجاد کلاس ها از روند ارزیابی به طور موثری در ارجاع استفاده می کنند، الگوهای طراحی شیء از کارکنان به طور موثری برای رسیدن به کار استفاده می کنند.الگوهای طراحي Creation شامل روش factory ,Singleton، Base Object و Prototype است.
 

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


2. دیزاین پترن Structural در جاوا

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

3. دیزاین پترن Behavioral در جاوا

الگوهای رفتاری در مورد شناسایی الگوهای ارتباطی مشترک بین اشیاء و تحقق این الگوها هستند.
الگوهای رفتاری عبارتند از: Iterator، Memento، Object Null، Observer، State، Strategy، Template method، Visitor.
 
در ادامه برخی از این الگو ها را مورد بررسی قرار میدهیم:
 

4. دیزاین پترن الگوی کارخانه یا Factory Method 

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


5. دیزاین پترن Abstract Factory در جاوا

الگوی  Abstract Factory  یک دیزاین پترن کاربردی در جاوا است که بر اساس factory می باشد و به عنوان بالاترین factory  سلسله مراتب عمل می کند. این نشان دهنده عمل ایجاد یک factory  از factory ها می باشد.این الگوی مسئول ایجاد همه factory های دیگر به عنوان کلاس های زیرین است، دقیقا همانطور که factory  ها مسئول ایجاد همه زیر کلاس های خود هستند.
 

6.دیزاین پترن Builder در جاوا

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

7.دیزاین پترن Prototype در جاوا

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

8.دیزاین پترن Singleton در جاوا 

الگوی Singleton یک دیزاین پترن در جاوا است که تضمین می کند که تنها یک شی در یک JVM وجود دارد. این یک الگوی نسبتا ساده است و توانایی دسترسی به این شیء را حتی بدون اکتیو کردن آن فراهم می کند. الگوهای طراحی دیگر از این الگو استفاده می کنند.

9.دیزاین پترن Adapter در جاوا

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

 

10.دیزاین پترن Bridge در جاوا

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

 

11.دیزاین پترن Filter در جاوا

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

12.دیزاین پترن Composite در جاوا

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

بیشتر بخوانید: آیا نام جاوا اینترپرایز (Enterprise) را شنیده اید؟

 

13.دیزاین پترن Decorator در جاوا 

الگوی Decorator یک دیزاین پترن مهم در زبان جاوا است که برای تغییر یک نمونه از یک کلاس در زمان اجرا استفاده می شود، با ایجاد یک کلاس Decorator که کلاس اصلی را خلق می کند.
به این ترتیب، تغییر یا اضافه کردن ویژگی های شیء Decorator بر ساختار یا ویژگی های شی اصلی اثر نخواهد گذاشت. این از وراثت کلاسیک در واقعیتی که در زمان اجرا انجام می شود، متفاوت است و تنها به یک نمونه خاصی اعمال می شود، در حالیکه ارث بری در تمام موارد تاثیر می گذارد و در زمان کامپایل انجام می شود.
 

14.دیزاین پترن Facade در جاوا 

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

15.دیزاین پترن Flyweight در جاوا 

الگوی Flyweight  یک دیزاین پترن در جاوا است که مربوط به کاهش فشار در JVM و حافظه آن است. این روش برای دستگاه های بدون حافظه زیاد و همچنین بهینه سازی برنامه بسیار مهم است.
هنگامی که یک برنامه خاص نیاز به ایجاد نمونه های بسیاری از همان کلاس داشته باشد، یک فیلد مشترک ایجاد می شود تا بتوان آن ها را به طور همزمان استفاده کرد.
شناخته شده ترین اجزای این الگوی طراحی String Pool در جاوا است. رشته ها شاید بیشتر از هر شی دیگری در زبان استفاده می شود و در نتیجه، با ایجاد یک فیلد از رشته های مشترک. بخش بزرگی از منابع را مصرف می کنند.

 

16.دیزاین پترن Proxy در جاوا 

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

 

17.دیزاین پترن Interpreter در جاوا 

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


18.دیزاین پترن Template Method در جاوا 

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

کلمات کلیدی :
جاوا