इस प्रश्न के समान: C# Constructor Design लेकिन यह सवाल थोड़ा अलग है।सी # किसी ऑब्जेक्ट में प्रारंभिक डेटा कहां लोड करना है?
मेरे पास एक क्लास ग्राहक और क्लास ग्राहक प्रबंधक है। जब ग्राहक प्रबंधक वर्ग का एक उदाहरण बनाया जाता है तो मैं सभी ग्राहकों को लोड करना चाहता हूं। और यह वह जगह है जहां मैं फंस गया। मैं इस कई तरीके से कर सकते हैं: निर्माता में
- लोड सभी ग्राहकों (मैं इस एक पसंद नहीं है क्योंकि यह है कि अगर मैं कई ग्राहकों है कुछ समय लग सकता है) CustomerManager के हर विधि में
वर्ग कि डेटाबेस से संबंधित कार्य करता है, जाँच ग्राहकों की स्थानीय सूची भरी हुई है और यदि नहीं, सूची लोड:
public method FindCustomer(int id) { if(_customers == null) // some code which will load the customers list }
एक तरीका है जिसके सभी ग्राहकों को लोड करता है बनाएँ।
वर्ग में:
public LoadData() { // some code which will load the customers list }
रूप में: यह विधि तरीकों जो डेटाबेस से संबंधित कार्य करता है कॉल करने से पहले बुलाया जाना चाहिए
CustomerManager manager = new CustomerManager(); manager.LoadData(); Customer customer = manager.FindCustomer(int id);
सबसे अच्छा तरीका क्या करना है इस?
संपादित करें:
मैं लग रहा है कि मैं यहाँ गलत समझा रहा है। शायद ऐसा इसलिए है क्योंकि मैं पर्याप्त स्पष्ट नहीं था। ग्राहक प्रबंधक श्रेणी में मेरे पास कई विधियां हैं जो स्थानीय सूची (_customers) पर निर्भर करती हैं। तो, मेरा सवाल यह है कि, मुझे उस सूची को कहां भरना चाहिए?
जब आपने "फॉर्म" कहा था, तो मेरा मानना है कि यह मायने रखता है कि आपका मतलब वेबफॉर्म या विनफॉर्म था; मैं अलग-अलग लागू करता हूं, क्योंकि कैशिंग भी शामिल है। तो, तुम्हारा मतलब क्या था? – BeemerGuy
मैं Winforms – Martijn
का उपयोग कर रहा हूं, मुझे लगता है कि आपको अधिक विस्तृत करने की आवश्यकता है (आपके EDIT के बाद)। यह स्पष्ट नहीं है कि आलसी लोडिंग आपके 'ग्राहक प्रबंधक' वर्ग के अंदर क्यों काम नहीं करेगी, जब तक आप आलसी 'ग्राहक 'या' आलसी 'में' _customers' को बदल दें और' _customers.Value 'को आंतरिक रूप से देखें। –