نقش Mediator در طراحی صحیح یک معماری پروژه برنامه نویسی

15 بازدید 0 نظر ۱۴۰۴/۰۹/۲۰
سطح دوره: متوسط
Overlay Image

Mediator (میانجی) یک الگوی طراحی نرم‌افزاری است که نقش آن مدیریت ارتباط بین اجزای مختلف سیستم است. به جای اینکه کلاس‌ها یا ماژول‌ها مستقیماً با هم صحبت کنند و وابستگی‌های زیادی ایجاد شود، همه پیام‌ها و درخواست‌ها از طریق یک "میانجی" رد و بدل می‌شوند.

 

نقش اصلی Mediator

  • کاهش وابستگی‌ها: کلاس‌ها دیگر به همدیگر وابسته نیستند، بلکه فقط با میانجی ارتباط دارند.

  • ساده‌سازی ارتباطات: به جای اینکه هر جزء ده‌ها ارتباط مستقیم با دیگر اجزا داشته باشد، فقط یک مسیر ارتباطی با میانجی دارد.

  • تمرکز منطق هماهنگی: تصمیم‌گیری درباره اینکه چه کسی باید چه کاری انجام دهد، در میانجی قرار می‌گیرد.

  • قابلیت تست و نگه‌داری بهتر: چون هر جزء مستقل‌تر است، تست کردن و تغییر دادن سیستم راحت‌تر می‌شود.

 

مثال ساده

فرض کنید در یک سیستم چند دکمه و چند فیلد متنی داریم. اگر هر دکمه مستقیماً فیلدها را تغییر دهد، وابستگی‌ها زیاد می‌شود. با Mediator، هر دکمه فقط به میانجی خبر می‌دهد: "من کلیک شدم". میانجی تصمیم می‌گیرد کدام فیلد باید تغییر کند.

 

در دنیای .NET و MediatR

در ASP.NET Core وقتی از MediatR استفاده می‌کنیم:

  • کنترلر فقط یک درخواست (Request) به Mediator می‌فرستد.

  • Mediator آن را به Handler مناسب می‌فرستد.

  • Handler منطق اصلی را اجرا می‌کند.

به این ترتیب کنترلر دیگر مستقیم به سرویس‌ها یا دیتابیس وصل نیست، بلکه همه چیز از طریق Mediator هماهنگ می‌شود.

خلاصه کلام: Mediator نقش یک هماهنگ‌کننده مرکزی را دارد که ارتباط بین اجزای سیستم را مدیریت می‌کند و باعث کاهش پیچیدگی و وابستگی می‌شود.

می‌خواهی برایت یک نمودار ساده بکشم که نشان دهد کنترلر، Mediator و Handler چطور با هم ارتباط می‌گیرند؟

 
 
از لینک زیر میتوانید به آخرین ورژن این کتابخانه دسترسی داشته باشید:

 

پروژه ویدیو در github:

https://github.com/eghbaldar/TestMediatR

 
 
لینک استاندارد شده: oFGyK
جستجوی مقاله و آموزش
خرید کل دوره
درباره مدرس
علیمحمد اقبالدار - Alimohammad Eghbaldar
  • علیمحمد اقبالدار ، برنامه نویس و عضو هیات مدیره شرکت: «کاسپین جهانی وب» «درگاه فیلم ایران»
  • تحصیلان: فوق لیسانس دانشگاه دولتی – گیلان
  • شروع برنامه نویسی: 16 سالگی
  • حرفه: فول‌استک، پیاده‌سازی سیستم های سِکیئورپلاس، طراحی هسته‌های وب اختصاصی و آنالیزور داده.
  • زبان‌ها:
  • علایق و تمرکز : فیلمسازی