जानकारी छिपाने की इच्छा को संतुलित करने के लिए प्रक्रिया (या फ़ंक्शन, मॉड्यूल इत्यादि) डिज़ाइन में कुछ सामान्य सर्वोत्तम प्रथाएं क्या हैं और प्रक्रिया के इंटरफ़ेस में अबास्ट्रक्शन का उपयुक्त स्तर शुरू करने में निहित समस्याओं के साथ निर्भरता निर्भर करता है?सूचना छिपाने बनाम छिपी निर्भरता
अधिक ठोस होने के लिए, मान लीजिए कि मैं getEmployeePhoneNbr (कर्मचारी आईडी) नामक प्रक्रिया को कोड करता हूं। आंतरिक रूप से, प्रक्रिया को कर्मचारी आईडी से बंद डेटाबेस तालिका से पूछताछ करके कार्यान्वित किया जाता है। मैं उन कार्यान्वयन विवरणों को छिपाना चाहता हूं, लेकिन अब प्रक्रिया बाहरी फाइल पर निर्भर करती है, जो पर्यावरण में बदलाव होने पर इसका उपयोग बाधित करती है।
एक ही स्थिति किसी भी समय बाहरी संसाधन - फ़ाइल, डेटाबेस, जो कुछ भी उपयोग करती है, वही स्थिति होगी। प्रक्रिया के भीतर उस संसाधन के उपयोग को हार्ड-कोड करने के लिए किसी भी तरह गलत लगता है, लेकिन मुझे यकीन नहीं है कि विकल्प क्या है।
कृपया ध्यान दें कि मैं किसी ऑब्जेक्ट उन्मुख भाषा में काम नहीं कर रहा हूं; यथासंभव संभव है, मुझे उन प्रतिक्रियाओं में सबसे अधिक दिलचस्पी होगी जो किसी भी प्रकार की भाषा में व्यापक रूप से लागू होते हैं।
धन्यवाद, मैट
क्या आपकी भाषा फ़ंक्शन पॉइंटर्स का समर्थन करती है? फ़ंक्शन पॉइंटर्स पर –
+1। इस समस्या के आस-पास लगभग कोई भी समाधान किसी भी तरह से फ़ंक्शन पॉइंटर्स तक उबालने जा रहा है। – kyoryu
मैं एसएएस का उपयोग कर रहा हूं, जिसमें (मेरी राय में) बड़ी संख्या में भाषा की कमी है; एसएएस में कोई फंक्शन पॉइंटर्स नहीं हैं (वास्तव में, जब तक एसएएस के सबसे हालिया संस्करण में कोई उपयोगकर्ता परिभाषित कार्य नहीं था - किसी को एसएएस (स्वीकार्य रूप से बहुत समृद्ध) मैक्रो सुविधा का उपयोग करके क्षतिपूर्ति करनी पड़ती है। इस प्रकार, जब मैं " मॉड्यूल "एसएएस के संदर्भ में, मेरा मतलब एसएएस मैक्रोज़ है। –