Двата ми цента за аспектно ориентирано програмиране

AOP (ориентирано към аспекти програмиране) е стил на програмиране, който може да бъде приет за определяне на определени политики, които от своя страна се използват за дефиниране и управление на кръстосаните проблеми в дадено приложение. По същество това е парадигма за програмиране, която позволява на вашето приложение да бъде адаптивно към промените.

Така че, когато се възползвате от AOP във вашите приложения, можете да увеличите модулността на вашето приложение чрез разделяне на проблемите. Можете да използвате AOP, за да намалите бъркотията на кода, като подобрите четливостта и поддръжката на вашия код.

Трябва да се отбележи, че AOP е просто нова парадигма за програмиране - тя не замества OOP по никакъв начин. По-скоро той допълва OOP, като ви предоставя друг начин за постигане на модулност и също така намалява бъркотията на кода.

В AOP аспект може да бъде дефиниран като модуларизация на даден проблем. Следователно този стил на програмиране е наречен аспектно ориентирано програмиране. В ООП можете да се възползвате от класовете, за да постигнете модулност. Напротив, можете да постигнете модулност в AOP чрез аспекти.

Същността на AOP е да капсулира функционалности, които са често срещани, като в същото време дава възможност на вашето приложение да използва тези функционалности, както е необходимо. Такива често срещани функционалности или междусекторни проблеми включват управление на защитата, регистриране, известия, управление на транзакции, управление на изключения и др. Някои от популярните AOP рамки включват: PostSharp, Spring framework, Castle Windsor, Microsoft Unity framework, Policy Injection Block и др.

Запознаване с терминологиите на AOP

Когато работите с AOP, трябва да сте запознати с някои от ключовите концепции за него. Те включват следното:

  • Аспект: Междусекторно предприятие или модул за многократна употреба. Можете да имате един или повече аспекти в дадено приложение.
  • Въведение: Функция, която се използва за деклариране на допълнителни методи и атрибути за определен тип.
  • Точка на присъединяване: Точка, в която можете да включите аспект.
  • Съвет: Действието, което се извършва в определена точка на присъединяване. Използва се и за определяне на действието, което трябва да се извърши преди или след изпълнението на метод.
  • Уийвинг: Предоставя решение на вашия заплетен код. Тя ви позволява да свързвате различни аспекти с други обекти на приложението. Обърнете внимание, че в зависимост от това кога ще се случи тъкането, можете да имате време за компилиране, време за зареждане или време на тъкане.
  • Целеви обект: Целевият обект може да бъде дефиниран като такъв, който се препоръчва от един или повече аспекти във вашето приложение.
  • Pointcut: Определя правилата за тъкане, т.е. той се използва за определяне на точката на съединяване, където даден съвет може да бъде приложен във вашето приложение.

Защо да използвам AOP все пак?

OOP вече насърчава повторната употреба и гъвкавостта на кода. И така, защо тогава имате нужда от AOP? AOP е парадигма за програмиране, която има всички предимства и на OOP. В допълнение към това можете да популяризирате свободно свързване и да разрешите на приложението ви да използва добавящи се аспекти, когато и когато е необходимо, без промяна в кода на вашето приложение. Използвайки AOP, можете да се съсредоточите върху бизнес логиката на вашето приложение, като същевременно вплетете аспектите в бизнес логиката. Едно от основните предимства на използването на AOP е, че просто ще трябва да напишете вашите аспекти веднъж и след това можете да го използвате повторно, където и да е необходимо във вашето приложение. Така че AOP е чудесен начин да намалите сложността на изходния код на вашето приложение и да направите кода си чист. Предимствата на AOP включват:

  • Намалено бъркотия в кода
  • Намалена излишък на код
  • По-лесна поддръжка на код
  • По-бързо развитие
  • Подобрена четливост на кода

Как да постигна AOP в молбата си?

За да приложите AOP във вашите приложения, първото нещо, което трябва да направите, е да изолирате аспектите в своето приложение от бизнес логиката. Най-важното нещо, което трябва да имате предвид при проектирането на аспектите, е, че те трябва да са независими и да не зависят от приложението. Би трябвало да можете да тествате и аспектите, независими един от друг. След това трябва да приложите тези аспекти към изходния код на приложението, като ги вплетете навсякъде, където са необходими на приложението. Един от начините, по които можете да внедрите AOP във вашите приложения, е чрез използването на атрибути.