مقدمه
پیش از این راجع به Bad Smell صحبت کردیم "لیست پارامتر طولانی" یکی از 22 نوع Bad Smell میباشد.
نحوه تشخیص و معرفی راه حل لیست پارامتر طولانیدر روز های اولی که برنامه نویسی را شروع کردیم اینطور فکر می کردیم که باید همه چیز را به عنوان یک پارامتر به یک رویه بفرستیم. این قابل درک بود چون روش دیگر استفاده از متغیر های عمومی بود که دردسر زیادی را به دنبال دارند. اشیا این شرایط را تغییر دادند چون اگر شی ای چیزی را که میخواهد ندارد میتواند از شی دیگری بخواهد که به او تحویل دهد. درنتیجه شما با اشیا همه چیز را با پارامتر به متد نمی دهید. در عوض به اندازه ای اطلاعات میفرستید که بتواند به همه چیز که نیاز دارد دست پیدا کند. اکثر چیز هایی که یک متد نیاز دارد در کلاسی که متد در آن قرار گرفته وجود دارد، در نتیجه در برنامه نویسی شی گرا تعداد پارامتر نسبت به برنامه نویسی سنتی کمتر می باشد.
وقتی میتوانید مقدار یک پارامتر را با یک درخواست از شی ای که می دانید بدست بیاورید روش جایگزینی پارامتر با متد[1] را انتخاب کنید. این شی ممکن است در کلاس موجود باشد یا یک پارامتر دیگر باشد. از روش حفظ تمامیت شی برای گرفتن یک شی بجای گرفتن پارامتر هایش به صورت جدا گانه استفاده کنید و هچمنین اگر تعداد زیادی پارامتر بدون شی مشترک دارید از روش معرفی شی پارامتر استفاده کنید.
یک نکته مهم که میتواند از تغییرات بالا جلوگیری کند برای وقتی هست که نمیخواهید از یک شی به یک شی بزرگتر وابستگی ایجاد کنید. در این صورت باز کردن اطلاعات و فرستادنش به عنوان پارامتر معقول است. ولی این را هم توجه داشته باشید که وقتی لیست پارامتر طولانی با تغییرات زیاد همراه می شود موجب دردسر است و باید در مورد ساختار وابستگی در طراحی تان تجدید نظر کنید.
[1] Replace Parameter with Method