अपारदर्शी डेटा प्रकार

कंप्यूटर विज्ञान में, एक अपारदर्शी डेटा प्रकार एक डेटा प्रकार होता है जिसकी ठोस डेटा संरचना एक इंटरफ़ेस (कंप्यूटिंग) में परिभाषित नहीं होती है। यह सूचना छिपाने को लागू करता है, क्योंकि इसके मूल्य (कंप्यूटर विज्ञान) को केवल उन सबरूटीन्स को कॉल करके हेरफेर किया जा सकता है जिनके पास लापता जानकारी तक पहुंच है। प्रकार का ठोस प्रतिनिधित्व इसके उपयोगकर्ताओं से छिपा हुआ है, और दृश्यमान कार्यान्वयन अधूरा है। एक डेटा प्रकार जिसका प्रतिनिधित्व दृश्यमान है, पारदर्शी कहलाता है। सार डेटा प्रकारों को लागू करने के लिए अपारदर्शी डेटा प्रकारों का अक्सर उपयोग किया जाता है।

अपारदर्शी डेटा प्रकारों के विशिष्ट उदाहरणों में एक ऑपरेटिंग सिस्टम द्वारा अनुप्रयोग प्रक्रिया सामग्री को प्रदान किए गए संसाधन (कंप्यूटर विज्ञान) के लिए हैंडल (कंप्यूटिंग) शामिल हैं। उदाहरण के लिए, POSIX थ्रेड्स कई अपारदर्शी प्रकारों के आधार पर एक अप्लिकेशन प्रोग्रामिंग अंतरफलक को परिभाषित करता है जो थ्रेड (कंप्यूटर साइंस) या म्युटेक्स  या  स्थिति चर ्स जैसे तुल्यकालन आदिम का प्रतिनिधित्व करता है। एक अपारदर्शी सूचक एक अपारदर्शी डेटा प्रकार का एक विशेष मामला है, एक डेटा प्रकार जिसे एक रिकॉर्ड (कंप्यूटर विज्ञान) या कुछ अनिर्दिष्ट डेटा प्रकार की डेटा संरचना के लिए सूचक (कंप्यूटर प्रोग्रामिंग) घोषित किया जाता है। उदाहरण के लिए, मानक पुस्तकालय जो सी (प्रोग्रामिंग भाषा) के विनिर्देश का हिस्सा बनता है, कम्प्यूटर फाइल इनपुट और आउटपुट के लिए फ़ंक्शन प्रदान करता है जो टाइप पॉइंटर के मान लौटाता है या लेता है जो फ़ाइल स्ट्रीम का प्रतिनिधित्व करते हैं (C फ़ाइल इनपुट/आउटपुट देखें), लेकिन प्रकार का ठोस कार्यान्वयन   निर्दिष्ट नहीं है।

विभिन्न भाषाओं में प्रयोग
कुछ भाषाएँ, जैसे सी प्रोग्रामिंग भाषा, अपारदर्शी रिकॉर्ड (कंप्यूटर विज्ञान) (संरचना) की घोषणा की अनुमति देती हैं, जिसका आकार और क्षेत्र क्लाइंट से छिपे होते हैं। केवल एक चीज जो ग्राहक इस प्रकार की वस्तु के साथ कर सकता है, वह है एक अपारदर्शी सूचक उत्पन्न करने के लिए, इसका स्मृति पता लेना।

यदि इंटरफ़ेस द्वारा प्रदान की गई जानकारी प्रकार के आकार को निर्धारित करने के लिए पर्याप्त है, तो ग्राहक उस प्रकार के चर (कंप्यूटर विज्ञान), क्षेत्र (कंप्यूटर विज्ञान), और सरणी डेटा संरचना की घोषणा कर सकते हैं, उनके मूल्यों को निर्दिष्ट कर सकते हैं और संभवतः समानता के लिए उनकी तुलना कर सकते हैं।. आमतौर पर ऐसा ही होता है अपारदर्शी संकेत के लिए।

कुछ भाषाओं में, जैसे कि जावा (प्रोग्रामिंग भाषा), प्रदान किया गया अपारदर्शी प्रकार का एकमात्र प्रकार अपारदर्शी सूचक है। दरअसल, जावा (और कई अन्य भाषाओं) में रिकॉर्ड हमेशा पॉइंटर्स के माध्यम से संभाले जाते हैं।

कुछ भाषाएँ आंशिक रूप से अपारदर्शी प्रकारों की अनुमति देती हैं, उदा. एक रिकॉर्ड जिसमें कुछ सार्वजनिक क्षेत्र होते हैं, जो सभी ग्राहकों के लिए ज्ञात और सुलभ होते हैं, और कुछ छिपे हुए क्षेत्र जो इंटरफ़ेस में प्रकट नहीं होते हैं। इस तरह के प्रकार वस्तु-उन्मुख प्रोग्रामिंग में मौलिक भूमिका निभाते हैं।

जो जानकारी इंटरफ़ेस में नहीं है, उसे इसके कार्यान्वयन (कंप्यूटिंग) में घोषित किया जा सकता है, या किसी अन्य मित्र-मात्र इंटरफ़ेस में घोषित किया जा सकता है। यह दूसरा विकल्प छिपी हुई जानकारी को दो या दो से अधिक मॉड्यूल द्वारा साझा करने की अनुमति देता है।

यह भी देखें

 * सार डेटा प्रकार
 * ब्लैक बॉक्स
 * लेक्स (URN)#पारदर्शी पहचानकर्ता
 * आगे की घोषणा
 * जानकारी छुपाना