حسام حداد

در مورد برنامه نویسی ، الگوریتم نویسی ، نکات ترفند ها

حسام حداد

در مورد برنامه نویسی ، الگوریتم نویسی ، نکات ترفند ها

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

آخرین نظرات
  • ۱۸ آبان ۹۵، ۱۲:۵۱ - سامان
    ای ول

مرد واسطه Middle Man

چهارشنبه, ۳۰ دی ۱۳۹۴، ۱۰:۵۸ ق.ظ

مقدمه

پیش از این راجع به Bad Smell و کاربرد آن در مهندسی نرم افزار صحبت کردیم "مرد واسطه" یکی از 22 نوع Bad Smell میباشد.

نحوه تشخیص و معرفی راه حل مرد واسطه
یکی از فواید اصلی اشیا Encapsulation میباشد یعنی جزئیات داخلی را از بقییه اشیا مخفی کنیم Encapsulation معمولا با نوعی همراهی بوجود می آید شما از یک کارگردان میپرسید که برای یک ملاقات وقت آزاد دارد او به دفترسررسید اش رجوع میکند و دفتر سر رسید به شما یک جواب می دهد همه چیز به خوبی انجام میشود. نیازی نیست که بدانید کارگردان دفتر سررسید واقعی دارد یا از نسخه الکترونیکی استفاده میکند یا از یک منشی برای مدیریت کردن قرار ملاقات ها استفاده می کند.
اما با زیاد شدن واسطه ها و پیچ خم ها قضیه به این خوبی باقی نمی ماند. شما به interface یک کلاس نگاه می کنید و میبینید که نصف متد ها با همراهی یک کلاس دیگر در حال انجام است. بعد از چندی نیاز است که با روش حذف مرد واسطه مستقیما از خود شی بپرسیم که اوضاع از چه قرار است! اگر تعداد کمی توابع وجود دارند که کار زیادی نمیکنند از روش توابع درخط استفاده کنید تا آنها را به صدا زننده منتقل کنید. اگر یک رفتار اضافی وجود دارد میتوانید از روش جایگزینی همراهی با وراثت[1] استفاده کنید تا مرد واسطه را به یک زیرکلاس از شی واقعی تبدیل کنید این به شما کمک میکند که قابلیت ها را بدون دنبال کردن تمامی آن همراهی ها تکامل بخشید.
[1] Replace Delegation with Inheritance

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی