मुझे पता है कि पहले से ही एक स्वीकृत जवाब है, लेकिन मैं एक और वहाँ बाहर फेंक करना चाहता था: ओपन/DirectX
न तो इन एपीआई के पूर्ण कार्यान्वयन हैं (हालांकि DirectX निश्चित रूप से थोड़ा अधिक है कि संबंध में ऊपर से भारी है), लेकिन बजाय ग्राफिक्स कार्ड में कमांड कमांड संचार करने के जेनेरिक तरीके।
कार्ड विक्रेता वे हैं जो एक विशिष्ट कार्ड के लिए कार्यान्वयन (ड्राइवर) प्रदान करते हैं, जो कई मामलों में बहुत हार्डवेयर विशिष्ट है, लेकिन आप उपयोगकर्ता को कभी भी इस बात की परवाह नहीं है कि एक उपयोगकर्ता GeForce एबीसी चला रहा है और दूसरा एक राडेन एक्सवाईजेड क्योंकि उच्च कार्यान्वयन एपीआई के पीछे सटीक कार्यान्वयन छिपा हुआ है। ऐसा नहीं था, आपको उस बाजार पर हर कार्ड के लिए अपने गेम में कोड पथ रखना होगा, जिसे आप समर्थन देना चाहते थे, जो 1 दिन से पूरी तरह से अप्रबंधनीय होगा। इस दृष्टिकोण के लिए एक और बड़ा प्लस यह है कि एनवीडिया/एटीआई एक रिलीज कर सकता है अपने ड्राइवरों का नया, अधिक कुशल संस्करण और आप अपने हिस्से पर कोई प्रयास नहीं करते हैं।
समान सिद्धांत ध्वनि, नेटवर्क, माउस, कीबोर्ड ... मूल रूप से आपके कंप्यूटर का कोई भी घटक के लिए प्रभावी है। चाहे हार्डवेयर स्तर पर या सॉफ़्टवेयर ड्राइवर में encapsulation होता है, किसी बिंदु पर सभी डिवाइस विनिर्देशों को छुपाया जाता है ताकि आप किसी भी कीबोर्ड का इलाज कर सकें, उदाहरण के लिए, केवल एक कीबोर्ड के रूप में और माइक्रोसॉफ्ट एर्गोनोमिक मीडिया एक्सप्लोरर डीलक्स संशोधन 2 नहीं
जब आप इसे इस तरह देखते हैं, तो यह जल्दी से स्पष्ट हो जाता है कि कुछ प्रकार के encapsulation/abstraction कंप्यूटरों के बिना हम उन्हें आज जानते हैं बस काम नहीं करेंगे। क्या यह आपके लिए पर्याप्त शानदार है?
मुझे नहीं पता कि मैं कहूंगा कि "कोड के शेष कोड के बारे में चिंता करने की आवश्यकता के बिना" कहने के लिए मैं अब तक जाऊंगा। केवल निजी सदस्यों को बदलने के दौरान आप निश्चित रूप से संकलन तोड़ सकते हैं। जब तक आप बाहरी इंटरफ़ेस नहीं बदलते हैं तब तक एक वर्ग के आंतरिक भाग को पूरी तरह से लिखने में सक्षम होने के साथ-साथ लाभ अधिक होता है। यह कुछ प्रकार के अनुकूलन के लिए बहुत अच्छा है। – Toji