Главная » Spring » Знакомство с AOP

0

Как отмечалось ранее, аспекты помогают отделить сквозные функции. Проще говоря, сквозные функции могут быть описаны как некоторая функциональность, затрагивающая множество мест в приложении. Обеспечение безопасности, например, является та- кой сквозной функцией – правила соблюдения безопасности могут затрагивать множество методов в приложении. Рисунок 5.1 дает ви- зуальное представление сквозных функций.

Рис. 5.1. Аспекты отделяют сквозные функции, реализуя логику, охватывающую

множество объектов в приложениях

Рисунок 5.1 представляет типичное приложение, разбитое на модули. Главная задача каждого из них – предоставление услуг в конкретной предметной области. Но каждый из этих модулей также требует выполнения вспомогательных функций, таких как обеспе- чение безопасности и управление транзакциями.

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

Аспекты предлагают альтернативу наследованию и делегирова- нию, более простую во многих случаях. При использовании аспект- но-ориентированного программирования общая функциональность так же определяется в одном месте, но порядок и место примене- ния этой функциональности можно определять декларативно, без изменения класса, к которому применяются новые возможности. Сквозные функции могут быть выделены в специальные классы, называемые аспектами. Это дает два преимущества. Во-первых, логика каждой из них теперь сосредоточена в одном месте, в отли- чие от случаев, когда она разбросана по всей программе. Во-вторых, упрощаются прикладные модули, поскольку содержат только реа- лизацию своей главной задачи (или базовой функциональности), а вторичные проблемы вынесены в аспекты.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии