इसलिए मुझे नहीं पता कि यह अच्छा या बुरा कोड डिज़ाइन है, इसलिए मुझे लगा कि मैं बेहतर पूछना चाहता हूं।
मैं अक्सर ऐसी विधियाँ बनाता हूँ जो डेटा प्रोसेसिंग कक्षाओं को शामिल करती हैं और मैं अक्सर तरीकों में बहुत सारी जाँच करता हूँ ताकि यह सुनिश्चित कर सकूँ कि मुझे हाथ से पहले अशक्त संदर्भ या अन्य त्रुटियाँ नहीं मिलीं।
एक बहुत ही बुनियादी उदाहरण के लिए:
// fields and properties
private Entity _someEntity;
public Entity SomeEntity => _someEntity;
public void AssignEntity(Entity entity){
_someEntity = entity;
}
public void SetName(string name)
{
if (_someEntity == null) return; //check to avoid null ref
_someEntity.Name = name;
label.SetText(_someEntity.Name);
}
तो जैसा कि आप हर बार नल की जाँच कर सकते हैं। लेकिन क्या विधि में यह जांच नहीं होनी चाहिए?
उदाहरण के लिए बाहरी कोड को हाथ से पहले डेटा को साफ करना चाहिए ताकि विधियों को नीचे की तरह मान्य करने की आवश्यकता न हो:
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
सारांश में, विधियों को "डेटा सत्यापन" होना चाहिए और फिर डेटा पर उनका प्रसंस्करण करना चाहिए, या विधि को कॉल करने से पहले इसकी गारंटी दी जानी चाहिए, और यदि आप विधि को कॉल करने से पहले मान्य करने में विफल रहते हैं, तो यह एक त्रुटि फेंकनी चाहिए (या इसे पकड़ना चाहिए) त्रुटि)?