Programovanie

Moje dva centy na aspektovo orientované programovanie

AOP (aspektovo orientované programovanie) je programovací štýl, ktorý je možné prijať na definovanie určitých politík, ktoré sa zase používajú na definovanie a správu prierezových problémov v aplikácii. V podstate je to paradigma programovania, ktorá umožňuje adaptáciu vašej aplikácie na zmeny.

Takže keď vo svojich aplikáciách využijete výhody AOP, môžete zvýšiť modularitu svojej aplikácie oddelením obáv. Pomocou AOP môžete znížiť preplnenie kódu zlepšením čitateľnosti a udržiavateľnosti kódu.

Je potrebné poznamenať, že AOP je iba nová paradigma programovania - nijako nenahrádza OOP. Skôr dopĺňa OOP tým, že vám poskytuje iný spôsob, ako dosiahnuť modularitu a tiež znížiť preplnenie kódu.

V AOP môže byť aspekt definovaný ako modularizácia koncernu. Preto sa tento štýl programovania nazýva aspektovo orientované programovanie. V OOP môžete využiť výhody tried na dosiahnutie modulárnosti. Naopak, modularitu v AOP môžete dosiahnuť prostredníctvom aspektov.

Podstatou AOP je zapuzdrenie bežných funkcií, ktoré zároveň umožňujú vašej aplikácii využívať tieto funkcie podľa potreby. Medzi také bežné funkcie alebo prierezové problémy patrí správa zabezpečenia, protokolovanie, oznámenia, správa transakcií, správa výnimiek atď. Niektoré z populárnych rámcov AOP zahŕňajú: PostSharp, Spring Framework, Castle Windsor, Microsoft Unity Framework, Policy Injection Block atď.

Oboznámenie sa s terminológiou AOP

Pri práci s AOP by ste mali byť oboznámení s niektorými jeho kľúčovými pojmami. Medzi ne patria:

  • Aspekt: ​​Prierezový podnik alebo opakovane použiteľný modul. V aplikácii môžete mať jeden alebo viac aspektov.
  • Úvod: Funkcia, ktorá sa používa na deklarovanie ďalších metód a atribútov pre konkrétny typ.
  • Pripojiť sa k bodu: Bod, do ktorého môžete zapojiť určitý aspekt.
  • Rada: Akcia, ktorá sa vykonáva v konkrétnom spojovacom bode. Používa sa tiež na definovanie akcie, ktorá by sa mala vykonať pred alebo po vykonaní metódy.
  • Tkanie: Poskytuje riešenie vášho zamotaného kódu. Umožňuje vám prepojiť rôzne aspekty s inými objektmi aplikácie. Upozorňujeme, že v závislosti od toho, kedy dôjde k tkaniu, môžete mať čas kompilácie, čas načítania alebo tkanie za behu.
  • Cieľový objekt: Cieľový objekt možno definovať ako objekt, ktorý je odporúčaný jedným alebo viacerými aspektmi vo vašej aplikácii.
  • Bodový strih: Určuje pravidlá tkania, t. J. Používa sa na definovanie bodu spojenia, kde je možné vo vašej aplikácii uplatniť konkrétnu radu.

Prečo by som mal používať AOP?

OOP už podporuje opätovnú použiteľnosť a flexibilitu kódu. Prečo teda potrebujete AOP? AOP je paradigma programovania, ktorá má tiež všetky výhody OOP. Okrem toho môžete podporiť voľné spojenie a umožniť aplikácii používať zásuvné aspekty, kedykoľvek je to potrebné, bez akejkoľvek zmeny v kóde aplikácie. Pri používaní AOP sa môžete sústrediť na obchodnú logiku svojej aplikácie a zároveň prepojiť aspekty s obchodnou logikou. Jednou z hlavných výhod používania AOP je, že stačí, keď raz napíšete svoje aspekty, a potom ich môžete vo svojej aplikácii znova použiť všade, kde potrebujete. AOP je teda vynikajúci spôsob, ako znížiť zložitosť zdrojového kódu vašej aplikácie a vyčistiť váš kód. Medzi výhody AOP patria:

  • Znížený neporiadok v kóde
  • Znížená redundancia kódu
  • Ľahšia údržba kódu
  • Rýchlejší vývoj
  • Vylepšená čitateľnosť kódu

Ako dosiahnem AOP vo svojej aplikácii?

Ak chcete implementovať AOP do svojich aplikácií, prvá vec, ktorú musíte urobiť, je izolovať aspekty vo vašej aplikácii od obchodnej logiky. Najdôležitejšou vecou, ​​ktorú by ste mali mať na pamäti pri navrhovaní aspektov, je to, že by mali byť nezávislé a nemali by závisieť od aplikácie. Mali by ste byť schopní otestovať aspekty aj na sebe navzájom nezávisle. Ďalej by ste mali tieto aspekty aplikovať na zdrojový kód aplikácie tak, že ich pretkáte všade, kde ich aplikácia potrebuje. Jedným zo spôsobov, ako môžete implementovať AOP vo svojich aplikáciách, je použitie atribútov.

$config[zx-auto] not found$config[zx-overlay] not found