راه حل: مسئولیت را به یک شی میانی بسپارید تا بین سایر مؤلفه ها یا سرویس ها واسطه شود تا مستقیماً جفت نشوند.
واسطه بین اجزای دیگر یک جهت غیر مستقیم ایجاد می کند.
همانطور که می بینید، در این مورد، مؤلفه Employee باید تماس بگیرد و در مورد مؤلفه Project بداند تا بتواند اطلاعات مربوط به کارکنان رزرو شده را به روز کند. علاوه بر این، بین هزینههای پروژه و مشتری پیوند دیگری وجود خواهد داشت. ما می خواهیم این سه جزء مستقل باشند، بنابراین این راه حل برای ما خوب نیست.
پس چه چیزی نیاز داریم؟ مولفه جدیدی که به نوعی ارکستراتور برای دیگران خواهد بود. ترتیب عملیات را تعیین خواهد کرد. برای معرفی آن می توانیم از برخی از این الگوهای طراحی استفاده کنیم:
چرا؟ زیرا ما به یک شی نیاز داریم که مسئولیت ارتباط بین همه ماژول ها را بر عهده بگیرد. به این ترتیب اجزا هیچ چیز در مورد یکدیگر نمی دانند. علاوه بر این، برای فهمیدن اینکه کدام مؤلفه به کدام یک نگاه می کند، مشکلی وجود نخواهد داشت، زیرا هیچ کدام به هیچ کدام نگاه نمی کنند.
در اینجا یک نتیجه از معرفی واسطه به کد ما آمده است:
برای مطالعه ی ادامه مطالب به لینک مراجعه کنید.