2008-12-20 16 views
8

मुझे आस्पेक्ट ओरिएंटेड प्रोग्रामिंग (स्प्रिंग, पोस्टशर्प इत्यादि) में बहुत दिलचस्पी है। मैं कुछ तरीकों से सोच सकता हूं कि मैं इसे नियोजित करूंगा, मुख्य रूप से लॉगिंग या आलसी भार दिमाग में आता है। मैं यह देखने की उम्मीद कर रहा था कि हर किसी ने इसका क्या उपयोग किया?क्या आप एओपी का उपयोग करते हैं? और किसके लिए?

कृपया एओपी का उपयोग करके हल किए गए साइनियोरियों को सूचीबद्ध करें। (Hopfully यह कुछ भी नहीं के लिए प्रेरित कर सकते हैं भी यह लेने के लिए)

चियर्स

हड्डियों सी # में

+0

http://stackoverflow.com/questions/325558/aspect-oriented-programming-examples –

+0

लिंक के लिए कूल धन्यवाद ... मैंने पहले देखा था :) – dbones

+0

आप शायद देखना चाहते हैं [यह सवाल] (http://stackoverflow.com/questions/325558/aspect-oriented-programming-examples) ... –

उत्तर

1

गुण AOP के उदाहरण हो सकता है - उदाहरण के लिए, ASP.NET MVC में AuthorizeAttribute प्राधिकरण लागू होता है गुणों से सजाए गए तरीकों या कक्षाओं में आवश्यकताओं।

2

मैंने 2007/2008 में एक प्रमुख परियोजना के लिए एओपी का उपयोग किया। जिस कंपनी के लिए मैं काम कर रहा था, वह मुझे अपने ग्राहकों का प्रबंधन करने के लिए कस्टम सीएमएस विकसित कर रहा था। इसे हमारे द्वारा विकसित कस्टम ढांचे में एकीकृत किया गया था और हमारे नियम इंजन के माध्यम से उपयोगकर्ता के मेटाडेटा के आधार पर सशर्त रूप से सामग्री प्रस्तुत कर सकता था।

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

1
  • सुरक्षा - घोषित आवश्यक अनुमतियों/भूमिकाओं और वर्तमान प्रधान के ज्ञान प्राधिकरण निर्णय लेने के लिए है कि कुछ सलाह लागू
  • वस्तु छंटाई - सलाह
  • लेन-देन का उपयोग कर बंद कटाव एक वस्तु ग्राफ के विभिन्न भागों - लागू तरीकों transactionality का ज्ञान नहीं है कि करने के लिए लेन-देन संबंधी व्यवहार
  • समय कोड

लॉगिंग अक्सर एक उदाहरण के रूप लेकिन व्यवहार में मुझे लगता है उद्धृत किया जाता है यह बहुत उपयोगी नहीं है। तरीकों के अंदर लॉगिंग स्टेटमेंट अधिक मूल्यवान होते हैं।

जैसा ऊपर बताया गया है, कक्षाओं या विधियों में विशेषताओं को जोड़ना और फिर एओपी का उपयोग आत्मनिरीक्षण के लिए करना है कि मेटाडेटा और तर्क निष्पादित करना कोड से उस तर्क को रद्द करने का एक शानदार तरीका है। आप घोषणाओं को एक अलग आर्टिफैक्ट (एक्सएमएल) में भी कर सकते हैं लेकिन मुझे विशेषता दृष्टिकोण बहुत शक्तिशाली लगता है।

3

मैं brd6644 द्वारा पोस्ट से सहमत हूं (और यदि मैं कर सकता तो इसे वोट दिया होगा)। लॉगिंग पर विशेष रूप से उनकी टिप्पणी। लॉगिंग के लिए पहलुओं का उपयोग करना ट्रेसिंग के समान है।

एओपी पर se-radio.net पर दो पॉडकास्ट हैं। first, ग्रेगोर किज़ेलेस के साथ एक साक्षात्कार, जिन्होंने एओपी पर बहुत सी शोध की है; second, क्रिस्टा श्वाइनिंगर और आईरिस ग्रोहर के साथ हालिया साक्षात्कार इस बात पर केंद्रित है कि अभ्यास में एओपी का उपयोग कैसे किया जाता है। दोनों सुनवाई के लायक हैं।

अंत में, सावधान रहें कि आप एओपी को कैसे अपनाते हैं। एओपी पर बहुत अधिक ध्यान केंद्रित करते हैं और आप व्यापार मूल्य प्रदान करने के बजाय मंच पर ध्यान केंद्रित कर रहे हैं। मुझे टेस्ट केस द्वारा एओपी का उपयोग करने के लिए कभी निर्देशित नहीं किया गया है।पहलू कुछ ऐसा है जो मैं डुप्लिकेशंस को हटाने के लिए ऐप के रिफैक्टरिंग के दौरान पेश करता हूं।

संबंधित मुद्दे