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