अतीत में, मैंने आमतौर पर किसी वस्तु के अपने हेरफेर को प्राथमिक विधि के भीतर किया है जो इसे बनाया / अपडेट किया जा रहा है, लेकिन मैंने पाया है कि मैंने हाल ही में एक अलग दृष्टिकोण लिया है, और यदि यह एक बुरा अभ्यास है तो मैं उत्सुक हूं।
यहाँ एक उदाहरण है। मान लीजिए कि मेरे पास एक रिपॉजिटरी है जो एक User
इकाई को स्वीकार करता है , लेकिन इकाई को सम्मिलित करने से पहले, हम यह सुनिश्चित करने के लिए कुछ तरीकों को कॉल करते हैं कि इसके सभी फ़ील्ड्स सेट हैं जो हम चाहते हैं। अब, कॉल करने के तरीकों और इंसर्ट विधि के भीतर से फील्ड वैल्यू सेट करने के बजाय, मैं तैयारी विधियों की एक श्रृंखला को कॉल करता हूं जो ऑब्जेक्ट को इसके सम्मिलन से पहले आकार देता है।
पुरानी विधि:
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
नई विधियाँ:
public void InsertUser(User user) {
SetUsername(user);
SetPassword(user);
context.Users.Add(user);
}
private void SetUsername(User user) {
var username = "random business logic";
user.Username = username;
}
private void SetPassword(User user) {
var password = "more business logic";
user.Password = password;
}
मूल रूप से, किसी अन्य विधि से एक संपत्ति के मूल्य को खराब अभ्यास करने का अभ्यास है?
user
संदर्भ द्वारा पारित किया गया था, तो कोड इसे कॉलर के हाथों से बाहर निकाल सकता है और इसे केवल कहने से बदल सकता है, कह सकते हैं user = null;
।