Aspektu orientēta programmēšana (AOP) komplimentē OOP tādā nozīmē, ka nodrošina arī modularitāti. Taču modularitātes galvenā vienība ir aspekts nekā klase.
AOP sadala programmas loģiku atsevišķās daļās (sauktas par problēmām). To izmanto, lai palielinātu modularitāti ar transversālas bažas .
A starpnozaru rūpes ir problēma, kas var ietekmēt visu lietojumprogrammu, un tā ir pēc iespējas jācentralizē vienā vietā kodā, piemēram, darījumu pārvaldība, autentifikācija, reģistrēšana, drošība utt.
Kāpēc izmantot AOP?
Tas nodrošina pievienojamu veidu, kā dinamiski pievienot papildu bažas pirms, pēc vai ap faktisko loģiku. Pieņemsim, ka klasē ir 10 metodes, kā norādīts tālāk:
class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} }
Ir 5 metodes, kas sākas ar m, 2 metodes, kas sākas ar n, un 3 metodes, kas sākas ar p.
Scenārija izpratne Man ir jāuztur žurnāls un jānosūta paziņojums pēc zvanīšanas metodēm, kas sākas no m.
Problēma bez AOP Mēs varam izsaukt metodes (kas uztur žurnālu un nosūta paziņojumus) no metodēm, kas sākas ar m. Šādā gadījumā mums ir jāraksta kods visās 5 metodēs.
Bet, ja klients turpmāk saka, man nav jāsūta paziņojums, jums ir jāmaina visas metodes. Tas noved pie uzturēšanas problēmas.
Risinājums ar AOP Mums nav jāizsauc metodes no metodes. Tagad klases metodē mēs varam definēt papildu problēmas, piemēram, žurnāla uzturēšanu, paziņojumu nosūtīšanu utt. Tās ieraksts ir norādīts xml failā.
Nākotnē, ja klients saka, ka jānoņem paziņotāja funkcionalitāte, mums būs jāmaina tikai xml fails. Tātad AOP apkope ir vienkārša.
Linux rediģēt failu
Kur izmantot AOP?
AOP galvenokārt izmanto šādos gadījumos:
- sniegt deklaratīvus uzņēmuma pakalpojumus, piemēram, deklaratīvo darījumu pārvaldību.
- Tas ļauj lietotājiem ieviest pielāgotus aspektus.
AOP jēdzieni un terminoloģija
AOP jēdzieni un terminoloģija ir šāda:
- Pievienošanās punkts
- Padoms
- Pointcut
- Ievads
- Mērķa objekts
- Aspekts
- Pārtvērējs
- AOP starpniekserveris
- Aušana
Pievienošanās punkts
Pievienošanās punkts ir jebkurš jūsu programmas punkts, piemēram, metodes izpilde, izņēmumu apstrāde, lauka piekļuve utt. Spring atbalsta tikai metodes izpildes pievienošanās punktu.
Padoms
Padoms apzīmē darbību, ko veic aspekts noteiktā savienojuma punktā. Ir dažādi padomi:
- Pirms padoms : tas tiek izpildīts pirms savienojuma punkta.
- Pēc atgriešanās padoma : tas tiek izpildīts pēc tam, kad savienojuma punkts ir normāli pabeigts.
- Padoms pēc mešanas : tas tiek izpildīts, ja metode iziet, izmetot izņēmumu.
- Pēc (beidzot) padoma : tas tiek izpildīts pēc savienojuma punkta neatkarīgi no savienojuma punkta izejas, vai tas atgriežas normāli vai ārkārtas gadījumos.
- Apkārt padomi : tas tiek izpildīts pirms un pēc savienojuma punkta.
Pointcut
Tā ir AOP izteiksmes valoda, kas atbilst savienojuma punktiem.
Ievads
Tas nozīmē papildu metodes un lauku ieviešanu veidam. Tas ļauj ieviest jaunu interfeisu jebkuram ieteiktajam objektam.
Mērķa objekts
Tas ir objekts, t.i., to konsultē viens vai vairāki aspekti. Tas ir zināms arī kā starpniekservera objekts pavasarī, jo Spring AOP tiek ieviests, izmantojot izpildlaika starpniekserverus.
Aspekts
Tā ir nodarbība, kurā ir padomi, savienojuma punkti utt.
Pārtvērējs
Tas ir aspekts, kas satur tikai vienu padomu.
AOP starpniekserveris
To izmanto AOP ietvaros izveidoto aspektu līgumu ieviešanai. Tas būs JDK dinamiskais starpniekserveris vai CGLIB starpniekserveris pavasara sistēmā.
Aušana
Tas ir aspekta saistīšanas process ar citiem lietojumprogrammu veidiem vai objektiem, lai izveidotu ieteicamo objektu. Aušanu var veikt kompilēšanas laikā, ielādes laikā vai izpildes laikā. Pavasara AOP veic aušanu izpildes laikā.
Linux palaišanas komanda
AOP ieviešanas
AOP ieviešanu nodrošina:
- AspektsJ
- Pavasara AOP
- JBoss AOP
Pavasara AOP
Pavasara AOP var izmantot 3 tālāk norādītajos veidos. Taču plaši izmantotā pieeja ir Spring AspectJ anotācijas stils. Tālāk ir norādīti 3 veidi, kā izmantot atsperu AOP:
- Autors: Spring1.2 Vecais stils (pamatojoties uz dtd) (tiek atbalstīts arī programmā Spring3)
- Pēc AspectJ anotācijas stila
- Pēc Spring XML konfigurācijas stila (pamatojoties uz shēmu)
Atsauces saites
Pavasara avots AOPSpring Source AOP API
Wikipedia