पहलू-उन्मुख, विषय-उन्मुख और भूमिका-उन्मुख प्रोग्रामिंग के बीच अंतर क्या हैं?


14

मुझे पता है कि इन तीन प्रतिमानों का वर्णन करने वाले कई पेपर हैं, लेकिन मैं एक योजनाबद्ध स्पष्टीकरण की तलाश कर रहा हूं।

यहाँ पर पहलू-उन्मुख प्रोग्रामिंग के कुछ बहुत अच्छे वर्णन हैं, इसलिए मैं इस सवाल को इस तरह से पूछ रहा हूं कि स्टैक ओवरफ्लो में किस तरह के उच्च-गुणवत्ता वाले उत्तर प्राप्त करने के लिए उपयोग किया जाता है।


यह शायद एक प्रोग्रामर के लिए अधिक है। प्रश्न, लेकिन यह वास्तव में ओपन-एंडेड भी है। देखें stackoverflow.com/faq#dontask - "आपके प्रश्नों को यथोचित रूप से बंद किया जाना चाहिए। यदि आप एक पूरी पुस्तक की कल्पना कर सकते हैं जो आपके प्रश्न का उत्तर देती है, तो आप बहुत अधिक पूछ रहे हैं।"
मेरलिन मॉर्गन-ग्राहम

मैं मूल थॉमस कुह्न पढ़ना शुरू करूँगा: amazon.com/Structure-Scientific-Revolutions-Thomas-Kuhn/dp/…

मैं अपने प्रश्न के एक छोटे से उत्तर की भी कल्पना कर सकता हूं। उदाहरण के लिए, यहां बताया गया है कि मैं पहलू-उन्मुख-प्रोग्रामिंग का वर्णन कैसे करूंगा: यह "प्रोसेसिंग-यूनिट्स" को जोड़ने का एक तरीका है, जिसे बिंदुओं के माध्यम से अन्य प्रसंस्करण-इकाइयों से पहले और बाद में मॉड्यूलर तरीके से पहलुओं कहा जाता है। मेरे लिए यह नियम-आधारित प्रोग्रामिंग की तरह दिखता है, उदाहरण के लिए Inform7 प्रोग्रामिंग भाषा। Inform7.com/learn/man/doc188.html

जवाबों:


9

इस पर किताब लिखकर कोई भी इसका जवाब दे सकता है। हालांकि, यहां एक बुनियादी तुलना है

1. विषय उन्मुख प्रोग्रामिंग

विषय उन्मुख उन्मुखीकरण इस प्रकार के रूप में उन्मुख वस्तु से कट्टरपंथी प्रस्थान है। OO में, वस्तुओं को आंतरिक के रूप में परिभाषित किया जाता है (अर्थात एक मॉडल पर आधारित है जो स्वतंत्र रूप से इसका वर्णन करता है)। और इसके आधार पर इसके गुण (गुण) और तरीके (व्यवहार) प्राप्त होते हैं। आवेदन केवल उपयोग करता हैइन गुणों और व्यवहार के। इसके विपरीत, विषय उन्मुख प्रोग्रामिंग में, इस तरह के अलगाव में कोई वस्तु मौजूद नहीं है (और मॉडलिंग की गई है)। इस प्रक्रिया में, लेकिन वस्तुओं के व्यवहार को ऑब्जेक्ट के विभिन्न अन्य "विषयों" द्वारा प्रदान किया जाता है जो मूल वस्तु के लेखक के दायरे और नियंत्रण से परे हैं। इसे विभिन्न "स्वतंत्र रूप से निश्चित व्यवहार" को बढ़ाने के तरीके के रूप में सोचें। "वस्तु पर। मुझे लगता है कि यहां जिस तरह की चर्चा की जा रही है, उसकी तुलना में यह विरासत के टेम्पलेट्स को परिभाषित करने से परे होगा।

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

देखें इस , यह और इस बारे में अधिक जानकारी के लिए।

2. पहलू उन्मुख प्रोग्रामिंग

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

पहलू ओरिएंटेड के कुछ अच्छे व्यावहारिक कार्यान्वयन AspectJ और AspectC ++ और कई और अधिक हैं । देखें इस

3. रोल ओरिएंटेड प्रोग्रामिंग
जैसा कि हम एजेंटों की ओर विकसित होते हैं, कई बार "भूमिकाओं" और उद्देश्यों को परिभाषित करना आवश्यक होता है, जहां सटीक गतिविधियां होती हैं, जो एजेंट एंड-अप प्रदर्शन करते हैं, यह उस वातावरण पर निर्भर करता है। यह मानव वैचारिक समझ के अनुरूप है।

प्राथमिक उद्देश्य सहयोग प्रक्रियाओं को स्पष्ट निर्माणों को परिभाषित करके सहयोग की क्षमता से कार्य का उद्देश्य कम करना है । एक भूमिका क्षमताओं और एक अपेक्षित व्यवहार के सेट के रूप में तैयार की जाती है। हालाँकि, ये दृष्टिकोण निष्पादन पर्यावरण के मॉडलिंग की अनुमति देते हैं और एजेंट / ऑब्जेक्ट पर्यावरण को भी देख सकते हैं। देखें इस

भूमिका आधारित मॉडलिंग और कार्यान्वयन के लिए अनुसंधान में विभिन्न रूपरेखाएं प्रस्तावित हैं। उनमें से कुछ ROPE , BRAIN , ALAADIN और बहुत कुछ हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.