Jawaban:
Pikirkan kekhawatiran sebagai grup fungsionalitas misalnya pencatatan, audit, keamanan
Fungsionalitas ini selalu ada di sebagian besar kode, tetapi mereka tidak benar-benar hidup di kelas hewan> anjing kami - mereka adalah fungsi yang harus hidup di banyak kelas - mereka saling terkait .
Sebuah Joinpoint adalah tempat di kode di mana kode aspek yang benar-benar berlari.
Titik potong adalah bagaimana mengatakan kode apa yang berjalan di titik gabungan.
Weaving - adalah ketika kompiler / sistem mengambil kode normal Anda dan memasukkan semua kode AOP sehingga memicu kode yang benar, dll - dapat menganggap ini sebagai langkah pra-kompilasi tambahan.
Contoh sederhana yang bisa dimengerti adalah:
Perlu diketahui bahwa terminologi sedikit berbeda antara implementasi yang berbeda dan kerangka kerja AOP.
Setiap definisi dibangun dari yang sebelumnya.
Sesuatu yang mengganggu Anda (kekhawatiran) di mana saja (lintas sektor) di seluruh aplikasi Anda. misalnya penebangan atau keamanan
Sepotong kode yang secara otomatis ditambahkan sebelum , setelah , atau keduanya ( sekitar ) kode Anda yang ada
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
Tempat dalam eksekusi kode di mana bagian dari aspek dieksekusi.
Titik di mana aspek Anda "bergabung" dengan titik potong. Pada joinPoint "sebelum" Anda akan memiliki akses ke parameter, pada joinPoint "sesudah" Anda akan memiliki akses ke nilai balik. Jika pengecualian dilemparkan, Anda mungkin perlu "coba-tangkap-akhirnya" untuk menangani atau melemparkannya kembali.
Proses menambahkan aspek di sekitar titik potong