class-design पर टैग किए गए जवाब

सर्वश्रेष्ठ ज्ञात उद्योग प्रथाओं के साथ कक्षाएं डिजाइन करने के तरीके पर सामान्य दिशानिर्देश।

16
एकल जिम्मेदारी सिद्धांत का उपयोग करते समय, एक "जिम्मेदारी" क्या होती है
यह बहुत स्पष्ट लगता है कि "सिंगल रिस्पॉन्सिबिलिटी प्रिंसिपल" का मतलब यह नहीं है कि "केवल एक ही चीज है।" यही तरीके हैं। public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } बॉब मार्टिन का कहना है कि …

9
क्या कोई "वास्तविक" कारण कई विरासत से नफरत है?
मुझे हमेशा एक भाषा में कई विरासतों का समर्थन करने का विचार पसंद आया है। बहुधा यद्यपि यह जानबूझकर माफ़ किया जाता है, और माना "प्रतिस्थापन" इंटरफेस है। इंटरफेस बस एक ही ग्राउंड को कवर नहीं करता है जो कई मल्टीपल इनहेरिटेंस करता है, और यह प्रतिबंध कभी-कभी अधिक बॉयलरप्लेट …

13
वर्ग कार्यान्वयन के अन्य प्रोग्रामरों को कैसे चेतावनी दें
मैं ऐसी कक्षाएं लिख रहा हूं जो "एक विशिष्ट तरीके से उपयोग की जानी चाहिए" (मुझे लगता है कि सभी वर्गों को ...) होना चाहिए। उदाहरण के लिए, मैं fooManagerवर्ग बनाता हूं , जिसे कॉल करने की आवश्यकता होती है, कहते हैं Initialize(string,string),। और, उदाहरण को थोड़ा और आगे बढ़ाने …

12
क्या कई परतों के माध्यम से उदाहरणों को पारित करना बुरा है?
मेरे कार्यक्रम के डिजाइन में, मैं अक्सर उस बिंदु पर आता हूं जहां मुझे कई वर्गों के माध्यम से ऑब्जेक्ट इंस्टेंसेस को पास करना है। उदाहरण के लिए, अगर मेरे पास एक नियंत्रक है जो एक ऑडियो फ़ाइल को लोड करता है, और फिर इसे एक खिलाड़ी को भेजता है, …

6
यदि किसी वस्तु के पास अमान्य स्थिति है, तो क्या एक अपवाद छोड़ देना चाहिए?
मैं अक्सर इस समस्या में चलता हूं, खासकर जावा में, भले ही मुझे लगता है कि यह एक सामान्य ओओपी मुद्दा है। वह यह है: एक अपवाद बढ़ाने से एक डिजाइन समस्या का पता चलता है। मान लीजिए कि मेरे पास एक वर्ग है जिसमें एक String nameक्षेत्र और एक …

6
किसी वर्ग को खुद की सूची के उपवर्ग के रूप में परिभाषित करने से क्या नुकसान होगा?
मेरी एक हालिया परियोजना में, मैंने निम्नलिखित हेडर के साथ एक वर्ग को परिभाषित किया: public class Node extends ArrayList<Node> { ... } हालांकि, मेरे सीएस प्रोफेसर के साथ चर्चा करने के बाद, उन्होंने कहा कि कक्षा "स्मृति के लिए भयानक" और "बुरा अभ्यास" होगी। मैंने पहले को विशेष रूप …

6
कक्षा के सदस्यों या आंतरिक तरीकों के बीच तर्क पारित करना पसंद करते हैं?
मान लीजिए कि एक वर्ग के निजी हिस्से के भीतर एक मूल्य है जो कई निजी तरीकों द्वारा उपयोग किया जाता है। क्या लोग इसे कक्षा के लिए एक सदस्य चर के रूप में परिभाषित करना पसंद करते हैं या इसे प्रत्येक विधि के तर्क के रूप में पारित कर …

9
क्या विशिष्ट उदाहरणों के लिए उपवर्ग बनाना एक बुरा अभ्यास है?
निम्नलिखित डिजाइन पर विचार करें public class Person { public virtual string Name { get; } public Person (string name) { this.Name = name; } } public class Karl : Person { public override string Name { get { return "Karl"; } } } public class John : Person { …

4
स्थैतिक पर गैर-स्थिर आंतरिक वर्ग क्यों पसंद करते हैं?
यह सवाल है कि जावा में नेस्टेड क्लास बनाने के लिए स्टैटिक नेस्टेड क्लास है या इनर नेस्टेड क्लास है। मैंने इधर-उधर और स्टैक ओवरफ्लो पर खोज की, लेकिन वास्तव में इस निर्णय के डिजाइन निहितार्थ के बारे में कोई सवाल नहीं कर सका। मुझे जो प्रश्न मिले वे स्टैटिक …

5
क्या किसी अन्य कक्षा का क्लासकॉलिनेशन बनाना एक अच्छा अभ्यास है?
आइए कहते हैं कि मेरे पास एक Carवर्ग है: public class Car { public string Engine { get; set; } public string Seat { get; set; } public string Tires { get; set; } } कहते हैं कि हम एक पार्किंग स्थल के बारे में एक प्रणाली बना रहे हैं, …

5
नेस्टेड क्लासेस का उपयोग कब और क्यों करना है?
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का उपयोग करना हमारे पास एक वर्ग (नेस्टेड क्लास) के अंदर एक वर्ग बनाने की शक्ति है, लेकिन मैंने अपने 4 वर्षों के कोडिंग अनुभव में कभी भी नेस्टेड क्लास नहीं बनाया है। नेस्टेड क्लास किसके लिए अच्छे हैं? मुझे पता है कि एक वर्ग को निजी …

3
वैकल्पिक पैरामीटर या अतिभारित कंस्ट्रक्टर
मैं एक कार्यान्वित कर रहा हूं DelegateCommand, और जब मैं कंस्ट्रक्टर को लागू करने वाला था, तो मैं निम्नलिखित दो डिज़ाइन विकल्पों के साथ आया था: 1: कई अतिभारित कंस्ट्रक्टर वाले public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute …

10
क्या हम बिना कंस्ट्रक्टर के रह सकते हैं?
मान लें कि किसी कारण से सभी ऑब्जेक्ट इस तरह से बनाए गए हैं $ obj = CLASS :: getInstance ()। फिर हम बसने का उपयोग करके निर्भरता को इंजेक्ट करते हैं और $ obj-> initInstance () का उपयोग करके आरंभिक प्रदर्शन करते हैं; क्या कोई वास्तविक परेशानी या स्थितियां …

5
क्या एक वर्ग को अपने उपवर्गों के बारे में पता होना चाहिए?
क्या एक वर्ग को अपने उपवर्गों के बारे में पता होना चाहिए? क्या किसी वर्ग को कुछ ऐसा करना चाहिए जो उदाहरण के लिए दिए गए उपवर्ग के लिए विशिष्ट हो? मेरी वृत्ति मुझे बताती है कि यह एक बुरा डिज़ाइन है, यह किसी प्रकार के विरोधी पैटर्न की तरह …

2
क्या विभिन्न कार्य हस्ताक्षर प्रदान करना एक अच्छा विचार है जो समान कार्य करते हैं?
यहाँ एक C ++ वर्ग है जो तीन मानों के साथ निर्मित होता है। class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; सभी पैरामीटर प्रकार अलग-अलग हैं। मैं कंस्ट्रक्टर को ओवरलोड कर सकता था ताकि ऑर्डर में कोई फर्क न पड़े। class Foo{ //Constructors …

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.