آیا استفاده از Handler در یک Handler دیگر در الگوی Mediator صحیح است؟
نویسنده: هادی مزارعی
تاریخ: ۱۴۰۳/۰۵/۲۵ ۱۰:۲۲
آدرس: www.dntips.ir
سلام
یک پروژه با کتابخانه MediatR ایجاد کردم و برای عملیات CRUD به ازای تمام Entityها Handlerهای مورد نیاز را پیاده سازی کردم. برخی از این Handlerها در زمان اجرای Bussiness مربوط به خودش، نیاز داره تا اطلاعاتی را در یک جدول دیگر در بانک اطلاعاتی ذخیره کنه ولی افزودن اطلاعات جدید در جدول دوم، مستلزم لحاظ نمودن Business مربوط به Handler دوم است. به تمامی Handlerها IEntityRepository مربوط به Entity که در Domain تعریف شده است تزریق می شود. در لایه Infrastructure نیز تمام متدهای موجود در IEntityRepository تحت نام EntityRepository پیاده سازی شده اند.
سوال:
تشکر
پاسخ Jimmy Bogard را در رابطه با این موضوع مطالعه کنید:
https://github.com/jbogard/MediatR/issues/434#issuecomment-527446360
The indirection of a handler is good at the application level, but just got confusing once we got inside a handler (and it introduced coupling)
پیشنهاد می کنم برای Reusability از Composition بهره بگیرید و قسمتی که لازم است به صورت مشترک استفاده شود را در قالب یکسری کلاس Refactor کرده و استفاده کنید.
منظور از Composition الگوی طراحیه؟
Composition در واقع اشاره می کند به روابط بین Object ها در فضای Object-Oriented. همچنین یکی از اصول طراحی با عنوان Favor composition over inheritance در همین زمینه برای رسیدن به Polymorphic behavior و Code reuse مطرح است. مثال های لینک زیر را بررسی کنید: