Аспект-ориентированное программирование

Эту статью следует викифицировать.
Пожалуйста, оформите её согласно общим правилам и указаниям.

Аспектно-ориентированное программирование (АОП) — парадигма программирования, основанная на идеи разделения функциональности, особенно сквозной функциональности, для улучшения разбиения программы на модули.

Существующие парадигмы программирования, такие как процедурное программирование и объектно-ориентированное программирование, предоставляют некоторые способы для разделения и выделения функциональности, например, функции, объекты, классы, пакеты, но некоторую функциональностью с помощью предложенных методов невозможно выделить в отдельные сущности. Такую функциональность называют сквозной, так как её реализация разбросана по различным модулям программы. Сквозная функциональность приводит к рассредоточенному и запутанному коду. Запутанным называется такой код, в котором одновременно реализованная различная функциональность.

Трассировка - типичный пример сквозной функциональности. Другие примеры: контрактное программирование, в частности проверка пред- и постусловий, обработка ошибок, реализация систем безопасности. Если рассматривать программу написанную с помощью ООП, то любая функциональность, по которой не происходила декомпозиция программы, является сквозной.

Все языки АОП предоставляют способы для выделения сквозной функциональности в отдельную сущность. Различие между ними заключается удобстве, безопасности и области применения средств, которые они предоставляют. Наиболее популярный на данный момент язык АОП - AspectJ. Используемые в нем понятия распространились на большинство языков АОП.

Рассмотрим основные понятия AspectJ:

Точка выполнения (JoinPoint) - определенная точка выполнения программы.
Срез (PointCut) - набор точек выполнения программы.
Применение (Advice) - состоит из условий примения и реализации функциональности.
Условий примения определяют до, после или вместо какого среза надо вставить требуемую функциональность.
Аспект (Aspect) - модуль AspectJ.
Introduction - метод изменения структуры класса путем введение новых полей и методов, а также изменения иерархии наследования.

См. также

Англоязычные статьи

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home