برنامه نویسی

مورد 52: از اضافه بار با احتیاط استفاده کنید

Summarize this content to 400 words in Persian Lang
مشکل اضافه بار:

اضافه بار متد، مانند مثال برنامه CollectionClassifier، می تواند منجر به رفتار غیرمنتظره شود، زیرا انتخاب روش فراخوانی در زمان کامپایل، بر اساس نوع پارامتر، و نه در زمان اجرا انجام می شود.

Overloaded در مقابل Over Written:

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

اجتناب از بارهای گیج کننده:

بارگذاری بیش از حد می تواند برنامه نویسان را گیج کند زمانی که مشخص نیست کدام روش برای مجموعه ای از پارامترها فراخوانی می شود. این به ویژه در API های عمومی مشکل ساز است.

توصیه ها:

از صادرات دو بار اضافه با تعداد پارامترهای یکسان خودداری کنید.
روش‌ها را به‌جای بارگذاری زیاد نام‌گذاری کنید (مانند writeInt و writeBoolean).
هنگام استفاده از varargs، از بارگذاری بیش از حد خودداری کنید.

مورد ژنریک و اتوباکس:

معرفی ژنریک و اتوباکسینگ در جاوا منجر به مشکلات بارگذاری بیش از حد شده است، همانطور که در مثال List.remove نشان داده شده است، که به دلیل وجود اضافه بارهای متعدد می تواند رفتار گیج کننده ای داشته باشد.

رابط های کاربردی و لامبدا:

افزودن لامبداها در جاوا 8 خطر سردرگمی را با بارگذاری بیش از حد روش‌هایی که رابط‌های کاربردی دارند، افزایش می‌دهد، به‌ویژه زمانی که آن رابط‌ها «بسیار متفاوت» نیستند.

راهکارهای عملی:

آزمایش صریح با instanceof می تواند از مشکلات مرتبط با اضافه بار جلوگیری کند.
اضافه بارها با پارامترهای کاملاً متفاوت (انواعی که نمی توانند به یکدیگر تبدیل شوند) از سردرگمی جلوگیری می کند.
سازندگان و اضافه بار: اگرچه سازندگان همیشه بیش از حد بارگذاری می شوند، استفاده از کارخانه های استاتیک می تواند از برخی از این پیچیدگی ها جلوگیری کند.

استثنائات موجه:

در برخی موارد، مانند تطبیق کلاس‌های قدیمی، ممکن است اضافه‌بارگذاری ضروری باشد، اما باید با دقت استفاده شود تا اطمینان حاصل شود که روش‌های سربارگذاری شده در هنگام فراخوانی با پارامترهای یکسان، یکسان رفتار می‌کنند.

نتیجه گیری:

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

نمونه هایی از کتاب:

مشکل اضافه بار:

  • اضافه بار متد، مانند مثال برنامه CollectionClassifier، می تواند منجر به رفتار غیرمنتظره شود، زیرا انتخاب روش فراخوانی در زمان کامپایل، بر اساس نوع پارامتر، و نه در زمان اجرا انجام می شود.

Overloaded در مقابل Over Written:

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

اجتناب از بارهای گیج کننده:

  • بارگذاری بیش از حد می تواند برنامه نویسان را گیج کند زمانی که مشخص نیست کدام روش برای مجموعه ای از پارامترها فراخوانی می شود. این به ویژه در API های عمومی مشکل ساز است.

توصیه ها:

  • از صادرات دو بار اضافه با تعداد پارامترهای یکسان خودداری کنید.
  • روش‌ها را به‌جای بارگذاری زیاد نام‌گذاری کنید (مانند writeInt و writeBoolean).
  • هنگام استفاده از varargs، از بارگذاری بیش از حد خودداری کنید.

مورد ژنریک و اتوباکس:

  • معرفی ژنریک و اتوباکسینگ در جاوا منجر به مشکلات بارگذاری بیش از حد شده است، همانطور که در مثال List.remove نشان داده شده است، که به دلیل وجود اضافه بارهای متعدد می تواند رفتار گیج کننده ای داشته باشد.

رابط های کاربردی و لامبدا:

  • افزودن لامبداها در جاوا 8 خطر سردرگمی را با بارگذاری بیش از حد روش‌هایی که رابط‌های کاربردی دارند، افزایش می‌دهد، به‌ویژه زمانی که آن رابط‌ها «بسیار متفاوت» نیستند.

راهکارهای عملی:

  • آزمایش صریح با instanceof می تواند از مشکلات مرتبط با اضافه بار جلوگیری کند.
  • اضافه بارها با پارامترهای کاملاً متفاوت (انواعی که نمی توانند به یکدیگر تبدیل شوند) از سردرگمی جلوگیری می کند.
  • سازندگان و اضافه بار: اگرچه سازندگان همیشه بیش از حد بارگذاری می شوند، استفاده از کارخانه های استاتیک می تواند از برخی از این پیچیدگی ها جلوگیری کند.

استثنائات موجه:

  • در برخی موارد، مانند تطبیق کلاس‌های قدیمی، ممکن است اضافه‌بارگذاری ضروری باشد، اما باید با دقت استفاده شود تا اطمینان حاصل شود که روش‌های سربارگذاری شده در هنگام فراخوانی با پارامترهای یکسان، یکسان رفتار می‌کنند.

نتیجه گیری:

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

نمونه هایی از کتاب:

توضیحات تصویر

توضیحات تصویر

توضیحات تصویر

توضیحات تصویر

توضیحات تصویر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا