Помимо ведения журнала и управления транзакциями, каковы некоторые практические применения АОП? - PullRequest
6 голосов
/ 19 мая 2009

Я понимаю принципы, но мне трудно понять, где практические применения находятся за пределами некоторых. Пожалуйста, просветите меня;)

Ответы [ 4 ]

3 голосов
/ 19 мая 2009

Спросите любого сотрудника службы поддержки: регистрация не хорошее применение АОП. Им все равно, какой метод вызывается внутри приложения. Они заботятся о важных действиях, которые выполняет приложение, и нуждаются в том, чтобы эта информация была представлена ​​в понятном им виде. Чтобы создавать приличные журналы, вы должны рассматривать ведение журнала как еще один пользовательский интерфейс приложения и разрабатывать его соответствующим образом.

Было бы точнее сказать, что АОП можно использовать для реализации трассировки .

И я не уверен, что это полезно и для управления транзакциями. Я обнаружил, что простое OO-делегирование четко разделяет управление транзакциями и бизнес-логику.

Тем не менее, хороший вопрос! Я обнаружил, что аргументы в пользу АОП делятся на два лагеря:

  1. Передача изменений в плохо разработанный код без необходимости очистки плохого дизайна.
  2. Работа с плохими инструментами разработки, такими как вставка трассировки в приложение, потому что среда не имеет хорошей поддержки для трассировки или отладки.
2 голосов
/ 19 мая 2009

Как сотрудники Spring, так и спецификационный комитет EJB3 считают, что AOP полезен для декларативных транзакций.

Безопасность, конечно.

«AOP в действии» имеет отличный пример, который показывает, как использовать AOP для обеспечения соблюдения архитектурных правил, например, без вызова уровня постоянства за пределами уровня обслуживания.

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

1 голос
/ 19 мая 2009

AOP весьма полезен, когда у вас большое унаследованное приложение, и вы хотите внести общие изменения во всем приложении.

Недавно я использовал его для разделения области сеанса http с помощью дополнительного файла cookie (кроме идентификатора сеанса). Это быстро избавило от боли плохо написанного кода, связанного с сеансом.

Также обратите внимание на Glassbox, чтобы получить очень хороший пример того, как АОП может помочь в создании легких инструментов для мониторинга и управления производительностью.

0 голосов
/ 19 мая 2009

Я только начал изучать, как я могу использовать АОП. До сих пор я использовал его для внедрения зависимостей и для реализации интерфейса для поддержки двухстороннего связывания данных в некотором коде пользовательского интерфейса.

...