menusearch
javapro.ir

Design Patterns چیست و چه کاربردی در زبان جاوا دارد؟

جستجو
چهارشنبه ۲۲ اردیبهشت ۱۴۰۰ | ۱۵:۴۴:۴۹
۱۳۹۹/۱۱/۲ پنج شنبه
(2)
(0)
Design Patterns چیست و چه کاربردی در زبان جاوا دارد؟
Design Patterns چیست و چه کاربردی در زبان جاوا دارد؟

کاربرد Design Patterns در جاوا چیست؟

 

 

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

 

 


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

 

 

کاربرد Design Patterns در جاوا چیست؟
الگوی طراحی

 


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

الگوی طراحی سازنده

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

 


حال موضوع جالبی که مطرح است اینکه چرا باید از این Design Patternسینگلتون استفاده کنیم؟ در واقع یکی از موضوعات مهم در نرم افزارها این است که یک شی بتواند با دیتابیس ارتباط برقرار کند. پس باید اطمینان حاصل شود که سایر شی ها در این راستا دخالتی ندارند. وقتی از الگوی سینگلتون استفاده می شود برای دسترسی به دیتابیس دیگر نیاز به ساختن شی جدید نخواهد بود.
نحوه استفاده از این تابع نیز بسیار آسان است و تنها نوشتن new  و پس از استفاده از واژه getInstance  یعنی شی مورد نظر در برنامه به دیتابیس دسترسی پیدا کند و تمام!

 


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

 


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

 

 

 

الگوهای طراحی در زبان برنامه نویسی جاوا چه کاربردی دارند؟
الگوی طراحی

 


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

 

 


Adapter:

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

 

 


Facade:

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

 

 


Bridge:

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

 

 


Flyweight:

این الگو منابع را اشتراک گذاری می کند به طوری که تعداد زیادی از اشیای سبک بتوانند کارایی درستی داشته باشند.

 

 


Composite:

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

 

 


Decorator:

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

 

 

Design Patterns در زبان برنامه نویسی جاوا


الگوی طراحی

 

 


معرفی الگوهای رفتاری
مجموعه الگوهای رفتاری به صورتی طراحی شده اند که سبب می شود وضعیت تعامل در بین اشیا رویکرد بیشتری داشته باشد.


Chain of responsibility:

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

 

 


Command:

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

 

 


Mediator:

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

مزایای استفاده از
Design Patterns
در برنامه نویسی شی گرا استفاده زیاد از کلاس ها و ایجاد اشیای جدید به صورت مکرر سبب پیچیدگی برنامه نویسی می شود و به طور کلی Design Patterns  اصول برنامه نویسی شی گرایی را شناسایی می کنند. یکی از مهمترین مزایای Design Pattern ها افزایش مقیاس پذیری است به طوری که رویکرد مقیاس پذیری با دردسر کمتری دنبال می شود. همینطور اجازه می دهد که توسعه پذیری نیز افزایش بیشتری داشته باشد.

 


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

 


 
Design Patterns چیست؟

 

الگوی طراحی

 

 

 

کجا از Design Patterns استفاده کنیم؟
در ابتدا نیاز است که مشکلات برنامه نویسی مشخص و دسته بندی شود تا بتوان بررسی کرد که هر یک از
Design Patternها برای چه مشکلی استفاده می شوند و چطور قابل اجرا هستند.
 

 

 


کاربرد Design Patterns ها
در دنیای برنامه نویسی شی گرا، D Pattern  ها از سوی افرادی طراحی و کشف شده است که اشراف کاملی به برنامه نویسی دارند. در واقع آنها این الگوها را کشف کرده اند تا بهترین، سریع ترین و درست ترین روش برای رسیدن به هدف در برنامه نویسی در کمترین زمان ممکن پیدا شود درست مثل زمانی که قرار است در یک شهر غریب به یک مقصد برویم اما نمی دانیم سریع ترین وسیله حمل و نقل، بهترین مسیر و ارزانترین قیمت کدام است در چنین شرایطی به سراغ فردی می رویم که اهل شهر مورد نظر است و به نوعی اشراف کامل به همه موارد دارد.
Design Pattern ها نیز همین کار را می کنند جلوی پیچیدگی های بی مورد را می گیرند و به نوعی نقش تدوینگر را ایفا می کنند.

 

 


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

 

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

 

 

D Pattern در زبان برنامه نویسی جاوا چه کاربردی دارد؟
الگوی طراحی
 


کلام آخر
اگر قرار است برنامه ای بنویسید که فکر می کنید 100 ها کلاس نیاز دارد و هزاران شی قطعاً
Design Patternها را جدی بگیرید. این الگوها به کدنویسی شما شکل و استایل مناسبی می دهند و بسیار تاثیرگذار هستند. این الگوها می توانند به صورتی اجرا شوند که شخص بتواند بهترین اجرا را به نتیجه برساند و به نوعی قیمه ها را در ماست نریزد!

 

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر