design - Preferred way to "move" an object between lists -


मेरे पास दो अलग-अलग संस्थाओं की सूची है:

  वर्ग EntityCollection: IList & lt; Entity & gt; {// ...} EntityCollection Foo; EntityCollection बार;  

मैं किसी ऑब्जेक्ट को Qux को स्थानांतरित करने के लिए एक क्रियान्वयन करना चाहता हूं जो कि सूची फू टू बार पर है। EntityCollection पर MoveTo उदाहरण विधि के रूप में :

 

सार्वजनिक शून्य हटो (EntityCollection, इकाई इकाई); // क्लाइंट कोड Foo.MoveTo (बार, Qux);
  • MoveFrom उदाहरण कोड के रूप में EntityCollection :

      सार्वजनिक शून्य मूवफ्रम (EntityCollection, इकाई इकाई); // क्लाइंट कोड Bar.MoveFrom (Foo, Qux);    
  • एक स्थिर मूव करें विधि पर EntityCollection :

      सार्वजनिक स्थैतिक शून्य हटो (इकाई इकाई, EntityCollection, EntityCollection से); // क्लाइंट कोड EntityCollection.Move (Qux, Foo, बार);  
  • दोनों के संग्रह वाले वर्ग पर मूव करें उदाहरण विधि के रूप में:

      सार्वजनिक शून्य स्थानांतरित करें (निकाय इकाई, EntityCollection, EntityCollection से); // क्लाइंट कोड धारक.मुख्य (क्यूक्स, फ़ू, बार);  
  • वैकल्पिक रूप से, और जब से संस्थाएं एक समय में केवल एक ही संग्रह में हो सकती हैं, तब भी मैं संस्थाओं को अपने स्थान को ट्रैक कर सकता हूं और इसे लागू कर सकता हूं स्वयं इकाई:

      सार्वजनिक शून्य हटो (EntityCollection to) {if (स्थान! = नल) स्थान। हटाएं (यह); to.Add (this); स्थान = से; } // क्लाइंट कोड इकाई ई; e.MoveTo (फू); // बाद में ... e.MoveTo (बार);  

    कई विकल्पों के साथ प्रस्तुत करते समय, मैं जानना चाहता हूं: चालन विधि कहां से है? और क्यों?

    अंत में, मुझे नहीं लगता कि यह बहुत मायने रखता है, इसलिए मेरा नरम जवाब होगा झल्लाहट नहीं करने के लिए।

    भाषाई, हटो हटो से कहीं अधिक स्वाभाविक लगता है - हालांकि मैं दोनों को पूर्णता के लिए कार्यान्वित करने की कल्पना कर सकता हूं।

    संकल्पनात्मक रूप से, मुझे लगता है कि न तो संग्रह उदाहरण और न ही संस्था स्थानांतरित होने के लिए "जिम्मेदार" स्थानांतरित हो रहा है, और इससे मुझे स्थिर विधि के रूप में रखने के लिए लगाया जा सकता है - अन्यथा आप ऑपरेशन में तीन चीजों में से किसी एक को कुछ अतिरिक्त महत्व दे रहे हैं।

    एक धारक का निर्माण

    लेकिन यह वास्तव में आप पर निर्भर है, और इन चीजों को आम तौर पर कैसे उपभोग किया जाएगा, यह जानने के लिए कि "सही" समाधान क्या है।


    Comments

    Popular posts from this blog

    c# - ListView onScroll event -

    PHP - get image from byte array -

    Linux Terminal Problem with Non-Canonical Terminal I/O app -