मैंने आज ही विरासत पर संरचना के बारे में कुछ सीखा। मैं सोच रहा था कि क्या मुझे हाल ही में लिखी गई किसी चीज़ को अवधारणा लागू करनी चाहिए।सार बेस या हेल्पर क्लास
हम पहले दो वर्गों है कि लगभग समान एक जोड़ी छोटे मतभेदों से अलग, थे। उनमें कुछ बुनियादी डेटाबेस पहुंच सुविधाएं शामिल थीं, लेकिन विभिन्न (लेकिन संबंधित) ऑब्जेक्ट प्रकारों पर संचालित थीं। इसलिए हम पहले से वर्ग जो कुछ इस तरह से संरचित किया गया था:
class BallMillDBHandler{
public BallMillDBHandler(){ ... }
public void InsertTool(BallMill tool) { ... }
public BallMill QueryTool(string toolID) { ... }
public void UpdateTool(BallMill tool) { ... }
public void DeleteTool(string toolID) { ... }
}
class DiamondToolDBHandler{
public DiamondToolDBHandler(){ ... }
public void InsertTool(DiamondTool tool) { ... }
public DiamondTool QueryTool(string toolID) { ... }
public void UpdateTool(DiamondTool tool) { ... }
public void DeleteTool(string toolID) { ... }
}
मैं लगभग दोहराया तरीकों के बहुमत को लेकर उन्हें एक BaseToolDBHandler()
वर्ग में बाहर पुनर्संशोधित, और अन्य दो से विरासत में मिला है, कुछ सार तरीकों प्रदान और डेटाबेस पैरामीटर को स्वयं एक्सेस करने में मतभेदों को संभालने के लिए गुण।
क्या यह BaseToolDBHandler
डेटाबेस सहायक के भीतर निहित एक सहायक वर्ग बनाने के लिए समझ में आता है, और उन्हें पहले अमूर्त गुण/विधियों का एक सामान्य इंटरफ़ेस प्रदान करता है? या मुझे इसे विरासत के मामले के रूप में छोड़ देना चाहिए?
यह मेरे लिए विरासत के लिए सही जगह की तरह लगता है, इसलिए मैं इसे इस तरह से छोड़ दूंगा। –
नील केनेडी सही है। लेकिन यदि आपका बेस क्लास केवल अमूर्त तरीकों और गुणों की पेशकश करता है और कभी भी किसी भी कार्यान्वित कार्यक्षमता को कभी इंटरफ़ेस का उपयोग नहीं करता है (ईजी 'आईडीबी हैंडलर')। –