c# - Should one use self-referencing generic inheritance like Customer : Entity<Customer> -
क्या स्व संदर्भित सामान्य विरासत का उपयोग करना उचित है?
सार्वजनिक अमूर्त वर्ग इकाई & lt; टी & gt; {सार्वजनिक गाइड आईडी {प्राप्त करें; सेट;} सार्वजनिक int संस्करण {get; सेट;} सार्वजनिक टी क्लोन () {... // clone routine ... return T; }} सार्वजनिक वर्ग ग्राहक: इकाई & lt; ग्राहक & gt; {सार्वजनिक स्ट्रिंग ग्राहकनाम {प्राप्त करें; सेट;} ...}
एक आधार ग्राहक वर्ग को ग्राहक कैसे डालता है? "ग्राहक: इकाई" क्या लाभ प्रदान करता है?
क्या जेनेरिक के बिना "ग्राहक: इकाई" का उपयोग करना बेहतर है?
आपको इसकी आवश्यकता होती है जब आप इसकी आवश्यकता होती है, न कि सिर्फ इसलिए कि आप कर सकते हैं उपरोक्त उदाहरण में, यह क्लोन ()
को कार्यान्वित करने के लिए कुछ समझ में आता है। हालांकि, जैसा कि आप सही तरीके से बताते हैं, इसका मतलब है कि आपके इकाई वर्गों में वास्तव में एक आम आधार वर्ग नहीं होगा, और उन गुणों को जो वास्तव में आम हैं, वे उपलब्ध नहीं होंगे। इसे संभाल करने का सही तरीका इसे सामान्य और गैर-सामान्य भागों में विभाजित करना है:
सार्वजनिक अमूर्त वर्ग इकाई {सार्वजनिक गुड आईडी (प्राप्त करें; सेट;} सार्वजनिक int संस्करण {get; सेट;}} सार्वजनिक सार तत्व इकाई & lt; T & gt; : इकाई जहां टी: इकाई & lt; T & gt; {सार्वजनिक टी क्लोन () {... // clone routine ... return T; }}
इसके अलावा, जहां
भाग को मैंने Entity & lt; T & gt;
की घोषणा में जोड़ा है - यह सुनिश्चित करता है कि यह वर्ग को केवल इस रिकर्सिव पैटर्न का एक भाग के रूप में उपयोग किया जा सकता है।
Comments
Post a Comment