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