আপনি যদি কোনও পদ্ধতির নাম পরিবর্তন করেন তবে এটি আর বেশি লোড হবে না। এবং নিজেই, ওভারলোডিং অগত্যা কোড কম পাঠযোগ্য হয় না, তবে সিনট্যাক্সটি পরিষ্কার না হলে এটি প্রয়োগ করা আরও কঠিন করে তুলতে পারে।
কার্যকরীতার জন্য একটি ইন্টারফেস উপস্থাপনের জন্য অনেকগুলি ভাষা পদ্ধতি ওভারলোডিংকে ব্যবহার করে যেখানে পরামিতিগুলি alচ্ছিক হতে পারে এবং paraচ্ছিক পরামিতিগুলির জন্য পূর্বনির্ধারিত থাকে। এটি বিশেষত ভাষার জন্য সত্য যা পদ্ধতি ঘোষণায় কোনও ডিফল্ট প্যারামিটার সিনট্যাক্স সমর্থন করে না।
সুতরাং এটি করছেন:
void MyMethod(int param1, int param2 = 10)
{
...
}
এটি করা থেকে আপনাকে বাঁচায়:
void MyMethod(int param1)
{
MyMethod(param1, Param2Default);
}
void MyMethod(int param1, int param2)
{
....
}
যা আরও পাঠযোগ্য, সত্যই এটি আপনার কাছে নেমে আসে। ব্যক্তিগতভাবে আমি দ্বিতীয় বিকল্পটি পছন্দ করি, বিশেষত যখন প্যারামিটারের তালিকাটি আরও দীর্ঘ হয় তবে আমি মনে করি আপনি এতক্ষণ আপনার API এর সাথে সামঞ্জস্যপূর্ণ হওয়ার কারণে এটি এতটা গুরুত্বপূর্ণ নয়।
অতিরিক্ত লোডিংয়ের সাথে অসুবিধা হয় যখন আপনি মূলত একই কাজ করে এমন ফাংশন চান এবং যেখানে আপনি প্যারামিটারের তালিকা একই হতে চান তবে ফেরতের ধরণগুলি আলাদা হতে পারে be বেশিরভাগ ভাষা কীভাবে একই নামের দুটি পদ্ধতির মধ্যে পার্থক্য করতে জানে না, তবে ভিন্ন ভিন্ন ফেরতের ধরণের সাথে types এই মুহুর্তে, আপনাকে জেনেরিকগুলি ব্যবহার, প্যারামিটার ইন্টারফেস পরিবর্তন করা, বা ফেরতের ধরণের পার্থক্য নির্দেশ করার জন্য আপনার কোনও পদ্ধতির নাম পরিবর্তনের বিষয়ে ভাবতে হবে। আপনি যদি এই জাতীয় পরিস্থিতি মোকাবেলা করার জন্য কোনও সাধারণ এবং স্পষ্ট নামকরণের স্কিমটি স্থির না করেন তবে পাঠযোগ্যতা একটি বড় সমস্যা হয়ে উঠতে পারে।
আপনার ওভারলোডেড পদ্ধতিগুলির নামকরণ GetSomething()
এবং GetSomethingEx()
আপনার পদ্ধতির মধ্যে পার্থক্য কী তা সম্পর্কে খুব বেশি কিছু বলতে যাচ্ছেন না, বিশেষত যদি এটির মধ্যে ফেরতের ধরনগুলি কেবল তাদের মধ্যে পার্থক্য। অন্যদিকে, GetSomethingAsInt()
এবং GetSomethingAsString()
পদ্ধতিগুলি কী করছে সে সম্পর্কে আপনাকে আরও কিছু বলুন, এবং কঠোরভাবে ওভারলোড না করে, নির্দেশিত করুন যে দুটি পদ্ধতি একই রকম কাজ করে, তবুও ভিন্ন মানের ধরণের প্রকার ফিরে আসে। আমি জানি যে অন্য পদ্ধতিগুলিরও আপনি পদ্ধতিগুলির নাম রাখতে পারেন তবে পয়েন্টটি ব্যাখ্যা করার উদ্দেশ্যে, এই অপরিশোধিত উদাহরণগুলি করা উচিত।
ওপিএসের উদাহরণে, নামটি কঠোরভাবে প্রয়োজনীয় নয় কারণ পদ্ধতির পরামিতিগুলি পৃথক, তবে এটি কোনও পদ্ধতির নামটি আরও নির্দিষ্ট করে দেওয়ার জন্য বিষয়গুলিকে কিছুটা পরিষ্কার করে তোলে। শেষ অবধি, এটি আপনার ব্যবহারকারীদের কাছে উপস্থাপন করতে ইচ্ছুক ইন্টারফেসের ধীরে ধীরে নেমে আসে। ওভারলোড না করার বিষয়ে সিদ্ধান্ত কেবল আপনার নিজের পাঠযোগ্যতার উপলব্ধির উপর ভিত্তি করে নেওয়া উচিত নয়। ওভারলোডিং পদ্ধতিগুলি উদাহরণস্বরূপ একটি API ইন্টারফেসকে সহজতর করতে পারে এবং অন্যদিকে, কোনও বিকাশকারীকে মনে রাখতে পারে এমন পদ্ধতির সংখ্যা হ্রাস করতে পারে, অন্যদিকে, এটি ইন্টারফেসটিকে এমন একটি ডিগ্রীতে বিভ্রান্ত করতে পারে যা কোন বিকাশকারীকে কোন ফর্মটি বুঝতে পদ্ধতি পদ্ধতির ডকুমেন্টেশন পড়তে হবে? ব্যবহারের পদ্ধতি যেমন একই সাথে এখনও বর্ণনামূলকভাবে নামকরণের পদ্ধতি রয়েছে তবে এটি তার উদ্দেশ্য সম্পর্কে কোনও পদ্ধতির নামটি পড়ার বিষয়টি আরও স্পষ্ট করে তুলতে পারে।