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 نظر
هدر سایت
دوره برنامه نویسی Spring Core
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب