Yanıtlar:
Endişeyi, günlüğe kaydetme, denetleme, güvenlik gibi bir işlevsellik grubu olarak düşünün
Bu işlevsellikler çoğu kodda mevcuttur, ancak hayvan -> köpek sınıflarımızda gerçekten yaşamazlar - birçok sınıfta yaşaması gereken işlevselliklerdir - bunlar kesişen endişelerdir .
Bir Birleşim Noktası , kodda en / boy kodunun gerçekte çalıştırıldığı bir yerdir.
Bir nokta kesimi , ortak noktada hangi kodun çalıştığını söyler.
Dokuma - derleyici / sistem normal kodunuzu aldığında ve doğru kodu tetikleyecek şekilde tüm AOP kodunu içerdiğinde - bunu ekstra bir derleme adımı olarak düşünebilir.
Basit, anlaşılır bir örnek:
Terminolojinin farklı uygulamalar ve AOP çerçeveleri arasında biraz farklı olduğunu lütfen unutmayın.
Her tanım öncekiler üzerine kuruludur.
Uygulamanız boyunca sizi her yerde rahatsız eden (çapraz kesen) bir şey. günlük kaydı veya güvenlik
Mevcut kodunuzun önüne , arkasına veya her ikisine ( etrafına ) otomatik olarak eklenen bir kod parçası
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
Kod yürütmesinde, yönün bir kısmının yürütüldüğü bir yer.
Görünüşünüzün noktaya "katıldığı" nokta. "Before" joinPoint'te parametrelere, "join" joinPoint'te ise dönüş değerine erişebileceksiniz. Bir istisna atılırsa, işlemek veya yeniden atmak için bir "try-catch-nihayet" gerekebilir.
Bir nokta kesimi etrafına yönler ekleme işlemi