আমার একটি ক্লাস আছে Writer
যা এর writeVector
মত একটি ফাংশন রয়েছে :
void Drawer::writeVector(vector<T> vec, bool index=true)
{
for (unsigned int i = 0; i < vec.size(); i++) {
if (index) {
cout << i << "\t";
}
cout << vec[i] << "\n";
}
}
পারফরম্যান্স নিয়ে চিন্তিত অবস্থায় আমি একটি সদৃশ কোড না রাখার চেষ্টা করছি। ফাংশনে, আমি if (index)
আমার- for
লুপের প্রতিটি রাউন্ডে চেক করছি , যদিও ফলাফল সর্বদা একই থাকে। এটি "পারফরম্যান্স নিয়ে উদ্বেগ" এর বিরুদ্ধে is
আমি আমার for
লুপের বাইরে চেক রেখে সহজেই এড়াতে পারতাম। তবে, আমি নকল কোডের প্রচুর পরিমাণে পেয়ে যাব:
void Drawer::writeVector(...)
{
if (index) {
for (...) {
cout << i << "\t" << vec[i] << "\n";
}
}
else {
for (...) {
cout << vec[i] << "\n";
}
}
}
সুতরাং এটি উভয়ই আমার জন্য "খারাপ" সমাধান। আমি যা ভাবছিলাম তা দুটি ব্যক্তিগত ফাংশন, এর মধ্যে একটি সূচককে ছাড়িয়ে যায় এবং তারপরে অন্যটিকে কল করে। অন্যটি কেবল মূল্য ছাড়িয়ে যায়। তবে, আমি কীভাবে এটি আমার প্রোগ্রামের সাথে ব্যবহার করব তা আমি বুঝতে পারি না, if
কোনটি কল করতে হবে তা দেখতে আমার এখনও চেক দরকার ...
সমস্যা অনুসারে বহুত্ববাদটি একটি সঠিক সমাধান বলে মনে হয়। তবে আমি এখানে এটি কীভাবে ব্যবহার করব তা দেখতে পাচ্ছি না। এই জাতীয় সমস্যা সমাধানের পছন্দের উপায় কী হবে?
এটি একটি আসল প্রোগ্রাম নয়, আমি এই ধরণের সমস্যাটি কীভাবে সমাধান করা উচিত তা শিখতে আগ্রহী।