जवाबों:
एक कार्यक्षमता समूह के रूप में एक चिंता के बारे में सोचो जैसे लॉगिंग, ऑडिटिंग, सुरक्षा
ये फ़ंक्शंस कभी-कभी अधिकांश कोड में मौजूद होते हैं, लेकिन वे वास्तव में हमारे जानवर में नहीं रहते हैं-> कुत्ते कक्षाएं - वे कार्यक्षमता हैं जो कई वर्गों में रहना चाहिए - वे क्रॉस कटिंग चिंताओं को पार कर रहे हैं ।
एक Joinpoint कोड में एक जगह है जहाँ पहलू कोड वास्तव में चलता है।
एक बिंदु यह कहने का तरीका है कि संयुक्त बिंदु पर कौन सा कोड चलता है।
बुनाई - जब कंपाइलर / सिस्टम आपका सामान्य कोड लेता है और इसमें सभी AOP कोड शामिल होते हैं ताकि यह सही कोड आदि को ट्रिगर करे - इसे अतिरिक्त प्री-कंपाइल स्टेप के रूप में सोच सकते हैं।
एक सरल समझने योग्य उदाहरण है:
कृपया ध्यान रखें कि शब्दावली अलग-अलग कार्यान्वयन और एओपी रूपरेखा के बीच थोड़ा भिन्न होती है।
प्रत्येक परिभाषा पिछले वाले पर बनाता है।
कुछ ऐसा जो आपको (चिंता में) आपको परेशान करता है। जैसे लॉगिंग या सुरक्षा
कोड का एक हिस्सा जो आपके मौजूदा कोड से पहले , बाद में , या दोनों ( आसपास ) जोड़ा जाता है
Application code
|
|
|
|
\|/
|
JoinPoint ----------->("before" aspect, on the way in) // just before your intercepted application code
Pointcut start--------> public String myMethod(params ...)
//your application code
Pointcut finish--------> return (foo)
JoinPoint ----------->("after" aspect, on the way out) // just after your intercepted application code
|
\|/
|
|
|
Application code
कोड निष्पादन में एक स्थान जहां पहलू का हिस्सा निष्पादित होता है।
वह बिंदु जहाँ आपका पहलू बिंदु से "जुड़ता है"। "से पहले" joinPoint में आपके पास मापदंडों तक पहुंच होगी, "join" के बाद "joinPoint" में आपके पास वापसी मान तक पहुंच होगी। यदि एक अपवाद को फेंक दिया जाता है, तो आपको इसे संभालने या फिर से फेंकने के लिए "ट्राइ-कैच-आखिर" की आवश्यकता हो सकती है।
एक बिंदु के आसपास पहलुओं को जोड़ने की प्रक्रिया