चलो खरोंच से शुरू करते हैं। सबसे पहले, वास्तव में अमूर्तता क्या है?
द प्रॉब्लम / मोटिव
जब आप कार्यक्रम करते हैं, तो आपको अक्सर विशेष रूप से विस्तृत समस्याओं को हल करना होगा।
अमूर्तता का प्राथमिक उद्देश्य वह होता है जब आप खुद को ऐसी स्थिति में पा सकते हैं, जहां आपका कार्यक्रम एक ही इकाई के रूप में पूरी समस्या को संभालता है, जिसमें कई असतत छोटी-छोटी विशिष्टताएँ होती हैं, जिन पर ध्यान देने और समझने की आवश्यकता होती है। यहाँ समस्या यह है कि एक ही बार में इतनी बड़ी मात्रा में डेटा को संभालना मानव के लिए कठिन है।
समाधान: अमूर्तता
अपने विचार को कार्यान्वित करने के लिए आपको जो समझने की आवश्यकता है, उसे समझने के लिए , आप विस्तृत समाधानों को सरलीकृत सार में निकाल सकते हैं ।
उदाहरण के लिए, आइए ORM (ऑब्जेक्ट-रिलेशनल मैपिंग) को देखें, जहां SQL ऑब्जेक्ट्स में सार है।
एक नए आइटम को बिना डेटाबेस में सम्मिलित करने के लिए, एक प्रोग्रामर को एसक्यूएल को जानना होगा। एक नया आइटम सम्मिलित करने के लिए एक प्रोग्रामर को तालिका में एक नया आइटम डालने के लिए SQL सिंटैक्स को याद रखने की आवश्यकता है:
INSERT INTO Items (field1, field2) VALUES (value1, value2)
लेकिन अमूर्तता के साथ, प्रोग्रामर को केवल इस विचार के बारे में पता होना चाहिए कि वह क्या करना चाहता है। एक वस्तु उन्मुख अमूर्त की तरह लग सकता है:
Item item = new Item(value1, value2)
आप थोड़ा और आगे बढ़ सकते हैं और इस तथ्य के बारे में सोच सकते हैं कि एसक्यूएल अपने आप में परिष्कृत डेटा-स्टोरेज संरचनाओं और एल्गोरिदम के टन के लिए एक बहुत बड़ा अमूर्त है, जो एक सरल घोषणात्मक भाषा सीखने की कीमत के लिए पूरी तरह से आपकी उंगलियों पर हैं।
अमूर्त के विपरीत
अब हम जो परिभाषित करते हैं, उसके आधार पर अमूर्तता वास्तव में यह पर्याप्त है कि यह केवल हाथ में आने वाली अवधारणा को जानने के लिए पर्याप्त है, हम आसानी से यह मान सकते हैं कि अमूर्तता का विपरीत वास्तव में गूढ़ है , जहां उपयोग या समझ किसी विशेष ज्ञान के बारे में किसी तरह की आवश्यकता होती है। विषय की ख़ासियत।