معرفی 9 الگوی بسیار مهم

ساخت وبلاگ

شیرجه عمیق به 9 الگوی طراحی محبوب و کاربردهای آنها

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

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

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

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

9 Popular Design Pattes and Their Uses

الگوهای خلاقیت

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

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

2. روش کارخانه: این الگوی برای تولید (جرم) اشیاء بدون مشخص کردن کلاس دقیق آنها - کمی شبیه یک کارخانه در دنیای واقعی است که کالاها را در مقیاس تولید می کند. در روش کارخانه ، زیر کلاس ها به طور معمول مسئول ایجاد نمونه خاص کلاس هستند. این مفید است که از قبل ویژگی ها و وابستگی های دقیق اشیاء را که کد شما با آنها کار خواهد کرد ، بدانید. یک کارخانه بستنی را در نظر بگیرید - ابتدا برای تهیه بستنی به عملکرد مشترک نیاز دارید و سپس می توانید مشخصات خود را برای طعم های مختلف اضافه کنید. روش کارخانه امکان اضافه کردن آسان زیر کلاس ها را برای تعیین موارد جدید فراهم می کند.

9 Popular Design Pattes and Their Uses

3. سازنده/سازنده: این الگوی اغلب برای ساده سازی ساخت اشیاء پیچیده (یا کامپوزیت) با رویکرد گام به گام استفاده می شود. یکی از راه های فکر کردن در مورد آن مانند تهیه پیتزا است - شما با پایه شروع می کنید ، سپس سس ، پنیر و طیف وسیعی از تاپ ها را اضافه می کنید. در هر مرحله ، متغیرهایی برای در نظر گرفتن وجود دارد: ضخامت خمیر ، میزان سس و ترکیب تاپ ها. الگوی سازنده هر یک از این مراحل ساده را برای ارائه محصول نهایی ، با امکان ساخت بازنمایی های مختلف از جسم (یعنی انواع مختلف پیتزا) سازماندهی می کند.

الگوهای ساختاری

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

4- آداپتور: این به عنوان پلی بین دو رابط ناسازگار عمل می کند. به یک مترجم فکر کنید ، بین دو نفر که به زبان های مختلف مکالمه می کنند (یک مشکل مشترک در برنامه نویسی!) یا یک آداپتور پلاگین ساده که به شما امکان می دهد تلفن آمریکایی خود را در هر کشور شارژ کنید ، فکر کنید. الگوی آداپتور با فعال کردن اشیاء به گونه ای که هر دو آنها را درک کنند ، توانایی دو رابط مستقل را ترکیب می کند.

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

9 Popular Design Pattes and Their Uses

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

الگوهای رفتاری

اینها مسئولیت اطمینان از ارتباط مؤثر بین مؤلفه ها را بر عهده دارند. آنها نگران تعامل بین اشیاء و همچنین واگذاری مسئولیت ها هستند. هدف این است که این فرایندها را تا حد امکان ساده و قابل درک کنیم. مثالهای مهم عبارتند از:

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

8. زنجیره ای از مسئولیت: از این الگوی برای انتقال درخواست های مشتری در امتداد زنجیره ای از اشیاء ("دستگیرنده ها") برای پردازش استفاده می شود. هر پیوند موجود در زنجیره تصمیم می گیرد که درخواست را پردازش کند یا آن را به خط بعدی منتقل کند.

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

9 Popular Design Pattes and Their Uses

9. استراتژی: این الگوی به شما امکان می دهد الگوریتم های مرتبط با گروه. به این ترتیب می توانید هر الگوریتم را در یک کلاس جداگانه ("استراتژی") قرار دهید و اشیاء آنها را بدون تغییر مشتری قابل تعویض تبدیل کنید. به این ترتیب ، بسته به استراتژی انتخاب شده ، یک رفتار کلاس یا الگوریتم آن در زمان اجرا قابل تغییر است.

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

اگر می خواهید با تمام مطالب جدیدی که در وبلاگ خود منتشر می کنیم به روز بمانید ، ایمیل خود را به اشتراک بگذارید و دکمه اشتراک را بزنید.

همچنین ، احساس راحتی کنید که بخش های دیگر وبلاگ را مرور کنید که در آن می توانید بسیاری از مقالات شگفت انگیز دیگر را در مورد آن بیابید: برنامه نویسی ، IT ، برون سپاری و حتی مدیریت.

توسط سانتیاگو کاسترو 29 آوریل 2022

با بیش از 16 سال تجربه در صنعت فناوری و نرم افزار و +12 از آن سالها در JobSity ، Santi نقش های مختلفی از جمله طراح وب UX/UI ، توسعه دهنده ارشد پیشکسوت ، مدیر پروژه فنی و مدیر حساب را انجام داده است. پوشیدن همه این کلاه ها ، تخصص گسترده ای و توانایی مدیریت تیم ها ، ایجاد راه حل و درک نیازهای صنعت را در اختیار وی قرار داده است. در حال حاضر ، او بخش عملیات را در JobSity اداره می کند و یک استراتژی سطح بالا برای موفقیت شرکت ایجاد می کند و تیمی را با بیش از 400 متخصص در کار خود در پروژه های بزرگ هدایت می کند.

کسب درآمد از بیت کوین...
ما را در سایت کسب درآمد از بیت کوین دنبال می کنید

برچسب : نویسنده : ماهور الوند بازدید : <-PostHit-> تاريخ : دوشنبه 23 مرداد 1402 ساعت: 12:44