मेरे पास फ़ंक्शन का एक समूह है जो कोड की एक पंक्ति को छोड़कर पूरी तरह से समान पढ़ता है, जो इनपुट पैरामीटर के प्रकार के आधार पर अलग है।कोड के लिए टेम्पलेट जो समान है लेकिन समान नहीं है?
उदाहरण:
void Func(std::vector<int> input)
{
DoSomethingGeneral1();
...
DoSomethingSpecialWithStdVector(input);
...
DoSomethingGeneral2();
}
void Func(int input)
{
DoSomethingGeneral1();
...
DoSomethingSpecialWithInt(input);
...
DoSomethingGeneral2();
}
void Func(std::string input)
{
DoSomethingGeneral1();
...
DoSomethingSpecialWithStdString(input);
...
DoSomethingGeneral2();
}
मुझे आश्चर्य है कि कैसे मैं एक टेम्पलेट की तरह तंत्र का उपयोग करते हुए इस दोहराव से बचने के सकता है। अगर मैं सही ढंग से "विशेषज्ञता" को समझता हूं, तो यह विशेष कार्यों के कोड को दो बार से बचने से नहीं बचाता है?
हम एक साहसिक कदम नहीं ले सकते जब तक यह जान न जाए कि DoSomethingSpecial क्या वास्तव में करना है। क्या आप अधिक जानकारी दे सकते हैं? यदि टेम्पलेट के लिए वास्तव में उपयुक्त नहीं है, तो इसे सामान्य इंटरफेस के अंदर बनाने के लिए हमें कुछ काम करना होगा और कॉलर के परिप्रेक्ष्य से इसे ट्विक करना होगा। – sarat