c++ - Implementation in global functions, or in a class wrapped by global functions -


पूर्वनिर्धारित हस्ताक्षर के अनुसार,

मुझे 60 फ़ंक्शन का एक सेट लागू करना है I वे वैश्विक कार्य होना चाहिए, और कुछ वर्ग के सदस्य कार्य नहीं होना चाहिए। जब मैं उन्हें लागू करता हूं, तो मैं तृतीय पक्ष द्वारा प्रदान किए गए अच्छे वर्गों का एक सेट का उपयोग करता हूं।

अधिकांश कार्यों का मेरा क्रियान्वयन बहुत कम है, लगभग 5-10 लाइनें, और उस तीसरी पार्टी कक्षाएं। कुछ और जटिल कार्यों के लिए मैंने कुछ नई कक्षाएं बनाईं जो सभी जटिल सामानों के साथ काम करती हैं, और मैं उन कार्यों में भी इसका उपयोग करता हूं सभी राज्य की जानकारी मेरे और तीसरे पक्ष के वर्गों के स्थैतिक सदस्यों में संग्रहित होती है, इसलिए मुझे वैश्विक चर बनाने की ज़रूरत नहीं है। प्रश्न: क्या यह बेहतर होगा अगर मैं 60 सदस्य के साथ एक बड़े वर्ग को कार्यान्वित करता? कार्यों, और सभी कार्यान्वयन (जो कि अब वैश्विक कार्यों में है) वहाँ? और मुझे लिखना है कि प्रत्येक कार्य केवल कक्षा में संबंधित सदस्य समारोह को बुलाएगा।

सभी राज्य की जानकारी मेरे और तीसरी पार्टी के वर्गों के स्थैतिक सदस्यों में संग्रहीत की जाती है, इसलिए मुझे वैश्विक चर बनाने की ज़रूरत नहीं है।

यही मुख्य बिंदु है नहीं, उन्हें निश्चित रूप से कक्षाओं में नहीं डालना चाहिए। ऑब्जेक्ट बनाने के लिए क्लासेस का उपयोग किया जाता है आपकी स्थिति में, आप डेटा और कार्यों के लिए, उन्हें एक दायरे के रूप में उपयोग करेंगे। लेकिन यह वही है जो नाम स्थान पहले से बेहतर समाधान कर रहे हैं:

  नामस्थान सामग्री {... 60 फ़ंक्शंस ... नामस्थान बाज़ {... अगर आप चाहें, तो आप नेस्टेड नेमस्पेस, ... ... कार्यों को वर्गीकृत करें ...} नामस्थान डेटा {... यदि आप चाहें तो एक अतिरिक्त नामस्थान में डेटा डाल सकते हैं ...}}  

वर्गों का निर्माण करना जो केवल स्थैतिक सदस्यों की विशुद्ध रूप से शामिल होती है, यह एक बुरा विचार है।


Comments