حسام حداد

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

حسام حداد

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

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

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

لیست پارامتر طولانی Long Parameter List

شنبه, ۲۶ دی ۱۳۹۴، ۱۱:۱۷ ق.ظ

مقدمه

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

نحوه تشخیص و معرفی راه حل لیست پارامتر طولانی
در روز های اولی که برنامه نویسی را شروع کردیم اینطور فکر می کردیم که باید همه چیز را به عنوان یک پارامتر به یک رویه بفرستیم. این قابل درک بود چون روش دیگر استفاده از متغیر های عمومی بود که دردسر زیادی را به دنبال دارند. اشیا این شرایط را تغییر دادند چون اگر شی ای چیزی را که میخواهد ندارد میتواند از شی دیگری بخواهد که به او تحویل دهد. درنتیجه شما با اشیا همه چیز را با پارامتر به متد نمی دهید. در عوض به اندازه ای اطلاعات میفرستید که بتواند به همه چیز که نیاز دارد دست پیدا کند. اکثر چیز هایی که یک متد نیاز دارد در کلاسی که متد در آن قرار گرفته وجود دارد، در نتیجه در برنامه نویسی شی گرا تعداد پارامتر نسبت به برنامه نویسی سنتی کمتر می باشد.

وقتی میتوانید مقدار یک پارامتر را با یک درخواست از شی ای که می دانید بدست بیاورید روش جایگزینی پارامتر با متد[1] را انتخاب کنید. این شی ممکن است در کلاس موجود باشد یا یک پارامتر دیگر باشد. از روش حفظ تمامیت شی برای گرفتن یک شی بجای گرفتن پارامتر هایش به صورت جدا گانه استفاده کنید و هچمنین اگر تعداد زیادی پارامتر بدون شی مشترک دارید از روش معرفی شی پارامتر استفاده کنید.

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

[1] Replace Parameter with Method

نظرات (۰)

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