मेरे पास सिस्टम का एक गुच्छा है, उन्हें A, B, C, D, E, F, G, H, I, J
पर कॉल करने दें।इंटरफेस, सार, या सिर्फ आभासी तरीकों?
उनके सभी समान तरीके और गुण हैं। कुछ में सटीक वही विधि और गुण होते हैं, कुछ थोड़ा भिन्न हो सकते हैं और कुछ बहुत भिन्न हो सकते हैं। अभी, मेरे पास प्रत्येक सिस्टम के लिए बहुत अधिक डुप्लिकेट कोड है। उदाहरण के लिए, मेरे पास GetPropertyInformation()
नामक एक विधि है जिसे प्रत्येक सिस्टम के लिए परिभाषित किया गया है। मैं यह पता लगाने की जो विधि सबसे अच्छा तरीका डुप्लिकेट कोड या शायद नीचे दिए गए तरीकों में से एक कम करने के लिए किया जाएगा कोशिश कर रहा हूँ जाने का रास्ता नहीं है:
इंटरफ़ेस
public Interface ISystem
{
public void GetPropertyInformation();
//Other methods to implement
}
public class A : ISystem
{
public void GetPropertyInformation()
{
//Code here
}
}
सार
एक सुपर बेस कक्षा मेंpublic abstract class System
{
public virtual void GetPropertyInformation()
{
//Standard Code here
}
}
public class B : System
{
public override void GetPropertyInformation()
{
//B specific code here
}
}
वर्चुअल तरीके
public class System
{
public virtual void GetPropertyInformation()
{
//System Code
}
}
public class C : System
{
public override void GetPropertyInformation()
{
//C Code
}
}
एक सवाल है, हालांकि यह बेवकूफ हो सकता है,, मान लेते हैं मैं सार दृष्टिकोण के साथ चला गया और मैं GetPropertyInformation
ओवरराइड करने के लिए करना चाहता था, लेकिन मैं इसे एक अतिरिक्त पैरामीटर दी जाने वाली आवश्यक जाने है यह संभव है या मैं करने के लिए होगा अमूर्त वर्ग में एक और विधि बनाएँ? उदाहरण के लिए, GetPropertyInformation(x)
मुझे लगता है कि अमूर्त और सुपर बेस क्लास समान थे। ए, बी, सी सिस्टम में एक मजबूत युग्मन है। एक उद्योग मानक है, लेकिन इसका पालन नहीं किया जाना चाहिए, इसलिए प्रत्येक व्यक्ति या तो मानक को अपना सकता है या मानक को अपने फिटिंग में बदल सकता है। जल्दबाजी में, मैंने सिस्टम उठाया :) – Xaisoft
रास्ते से अच्छे अंक। – Xaisoft