मैं एक ऐसा ऐप विकसित कर रहा हूं जिसका उपयोग औद्योगिक वातावरण में वाल्व खोलने और बंद करने के लिए किया जाएगा, और इस तरह से कुछ सरल सोच रहा था: -
public static void ValveController
{
public static void OpenValve(string valveName)
{
// Implementation to open the valve
}
public static void CloseValve(string valveName)
{
// Implementation to close the valve
}
}
(कार्यान्वयन वाल्व को नियंत्रित करने के लिए सीरियल पोर्ट पर डेटा के कुछ बाइट्स लिखेगा - वाल्व नाम से व्युत्पन्न "पता", और वाल्व को खोलने या बंद करने के लिए या तो "1" या "0"।
एक अन्य देव ने पूछा कि क्या हमें प्रत्येक भौतिक वाल्व के लिए एक अलग वर्ग बनाना चाहिए, जिसमें से दर्जनों हैं। मैं मानता हूं कि इसके PlasmaValve.Open()
बजाय कोड लिखना अच्छा होगा ValveController.OpenValve("plasma")
, लेकिन क्या यह ओवरकिल है?
इसके अलावा, मैं सोच रहा था कि भविष्य में काल्पनिक आवश्यकताओं की एक जोड़ी के साथ डिजाइन से कैसे निपटना सबसे अच्छा है: -
- हमें एक नए प्रकार के वाल्व का समर्थन करने के लिए कहा जाता है, जिसमें विभिन्न मानों को खोलने और बंद करने की आवश्यकता होती है (0 और 1 नहीं)।
- हमें एक वाल्व का समर्थन करने के लिए कहा जाता है जिसे 0-100 से किसी भी स्थिति में सेट किया जा सकता है, बजाय "खुले" या "बंद" के।
आम तौर पर मैं इस तरह की चीज के लिए विरासत का उपयोग करता हूं, लेकिन मैंने हाल ही में "उत्तराधिकार पर रचना" के आसपास अपना सिर प्राप्त करना शुरू कर दिया है और आश्चर्य है कि क्या रचना का उपयोग करने के लिए एक चालाक समाधान होना चाहिए था?