پرش به محتوای اصلی
مسیر تخصصی جاوا و Spring
درخواست پروژهارتباط با ماراهنما
جاواپرو v1.2.4یاد بگیر، تمرین کن، حرفه‌ای بساز
خانهدوره‌هاآموزش رایگانوبلاگمدرس‌هاخدمات
خانهDesign Patterns چیست و چه کاربردی در زبان جاوا دارد؟
وبلاگ »

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

در این مطلب برنامه نویسی جاوا با کاربرد Design Patterns در زبان جاوا آشنا می شوید.

۹ دقیقه مطالعهوبلاگ »آموزش جاوا و انجام پروژه های برنامه نویسی
Design Patterns چیست و چه کاربردی در زبان جاوا دارد؟
محتوای منتخب جاواپرو

خلاصه مطلب

در این مطلب برنامه نویسی جاوا با کاربرد Design Patterns در زبان جاوا آشنا می شوید.
نوع محتوامقاله آموزشی
موضوعوبلاگ »
زمان مطالعه۹ دقیقه
آخرین ویرایش۱۷ مهر ۱۴۰۰
کاربرد 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 در زبان برنامه نویسی جاوا
Design Patterns در زبان برنامه نویسی جاوا

الگوی طراحی

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

Chain of responsibility:

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

Command:

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

Mediator:

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

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

Design Patterns چیست؟
Design Patterns چیست؟

الگوی طراحی

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

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

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

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

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

الگوی طراحی

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

برچسب‌هاوبلاگ »مقالات جاوا »Design Patternsدیزاین پترن چیستdesign patterndesign pattern چیستdesign pattern در جاواکاربرد design patternزبان جاواجاواDesign Patterns هابرنامه نویسیدیزاین پترنکاربرد دیزاین پترن
ادامه مسیر

پیشنهاد جاواپرو

موضوع را با آموزش‌های مرتبط ادامه دهید و نکته‌های کاربردی را در مسیر خود نگه دارید

مشاهده دوره‌ها
مطالب پیشنهادی

ادامه مطالعه

xدسته‌بندی نشده
۱۱ دی ۱۳۹۸ مطالعه کوتاه

x

پادکست شماره 3 – راه های کسب درآمد از برنامه نویسی

مطالعه مطلب
پادکست شماره 3 - راه های کسب درآمد از برنامه نویسیپادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 3 - راه های کسب درآمد از برنامه نویسی

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

مطالعه مطلب
پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟پادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟

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

مطالعه مطلب
جاواپرومرجع تخصصی یادگیری و توسعهٔ جاوا

تجربه‌ای منظم، ساده و حرفه‌ای برای یادگیری عمیق جاوا، Spring و مهندسی نرم‌افزار؛ قابل استفاده در موبایل، تبلت و دسکتاپ

یادگیری

همه دوره‌هاآموزش رایگانمسیر یادگیریمدرس‌ها

جاواپرو

درباره ماخدمات تخصصیدرخواست پروژهبلاگ فنی

پشتیبانی

تماس با ماپرسش‌های متداولقوانین و حریم خصوصیبروزرسانی‌های جاواپروثبت تیکت
خرید امنپرداخت فقط در درگاه رسمیپشتیبانی آموزشیمسیر ارتباط شفاف و پیگیری‌پذیردسترسی پایداروب‌اپ واکنش‌گرا روی همه دستگاه‌ها
© ۱۴۰۵ جاواپرو؛ همه حقوق محفوظ استتوسعه توسط پایاپینگ
خانهدوره‌هاسبد