الگوی طراحی چیست؟
الگوی طراحی یک راه حل تکراری کلی برای یک مشکل رایج در طراحی نرم افزار است.
الگوی طراحی Adapter یا Adapter Design Pattern چیست؟
الگوی طراحی آداپتور یا Adapter Design Pattern یک الگوی طراحی برای ایجاد ارتباط بین اینترفیس های ناسازگار است. این الگو یک اینترفیس ناسازگار را به یک اینترفیس سازگار تبدیل می کند که می تواند توسط کلاینت استفاده شود.
بنابراین می توانیم بگوییم که از طریق الگوی طراحی آداپتور می توانیم بین دو اینترفیس ناسازگار ارتباط برقرار کنیم. آداپتور نقش مبدل یا مترجم را بازی می کند.
این آداپتور معمولاً به عنوان Wrappers شناخته می شود زیرا آداپتور را با یک اینترفیس جدید wrap می کند که بتواند توسط کلاینت استفاده شود.
این الگو زمانی مفید است که میخواهید از کلاسهای موجود استفاده کنید، اما اینترفیس های آنها با آنچه شما نیاز دارید مطابقت ندارد.
الگوی طراحی آداپتور به عنوان پلی بین دو شیء ناسازگار عمل می کند. فرض کنید شی اول A و شی دوم B است. شی A می خواهد برخی از خدمات شی B را مصرف کند. با این حال، این دو شی ناسازگار هستند و نمی توانند به طور مستقیم با هم ارتباط برقرار کنند. در این حالت آداپتور وارد تصویر می شود و به عنوان واسطه یا پل بین اشیاء A و B عمل می کند. اکنون شیء A آداپتور را صدا می کند و آداپتور تبدیل ها یا تبدیل های لازم را انجام می دهد و سپس شی B را صدا می کند.
تصور کنید که روی یک برنامه مالی کار می کنید که تراکنش ها را پردازش می کند. برنامه شما باید با چندین درگاه پرداخت تعامل داشته باشد، اما یک نکته وجود دارد، هر درگاه رابط روش پیاده سازی متفاوتی دارد.
این ناهماهنگی یک چالش مهم ایجاد می کند : چگونه برنامه خود را طوری طراحی می کنید که با این رابط های متنوع کار کند؟
برای این موضوع می توان به سه روش عمل کرد:
- استفاده از یک درگاه (تک درگاهی)
- استفاد از چندین درگاه که هرکدام اینترفیس خود را دارند و کلاینت برای استفاده باید با اینترفیس های متفاوت درگاه درگیر شود.
- استفاده از یک اینترفیس واحد (یک پل بین درگاه های متفاوت) که کلاینت فقط با این اینترفیس سر و کار دارد.
بدیهی است که بهترین روش استفاده از الگوی طراحی Adapter است.
این الگو به عنوان پلی بین برنامه شما و سیستم های خارجی با اینترفیس های های ناسازگار عمل می کند. این الگو اینترفیس یک سیستم خارجی را به اینترفیسی ترجمه می کند که برنامه شما می تواند آن را درک کند، بسیار شبیه به ترجمه زبان های مختلف به یک زبان مشترک است.
ما در این آموزش سناریو فوق را در یک Wep API با دات نت 8 شبیه سازی و پیاده سازی می کنیم.
در این آموزش برای resolve کردن سرویس ها از ویژگی جدید دات نت 8 یعنی Keyed Service بهره خواهیم برد.
دریافت سورس پروژه در گیت هاب
نتیجه گیری:
این رویکرد امکان انعطاف پذیری حل پیاده سازی های خاص یک اینترفیس را بر اساس الزامات فراهم می کند. این الگو یک راه قوی برای مدیریت پیادهسازیهای متعدد در یک DI است و تضمین میکند که سرویس مناسب در زمینه مناسب استفاده میشود.
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید