AspectJ

AspectJ
Класс языка аспектно-ориентированный
Появился в 2001
Разработчик Eclipse Foundation
Расширение файлов .aj
Выпуск 1.9.9.1[1] (31 марта 2022; 2 года назад (2022-03-31))
Основные реализации AspectJ Development Tools для Eclipse
Испытал влияние Common Lisp
Лицензия Eclipse Public License
Сайт eclipse.org/aspectj/
ОС Кроссплатформенный
Логотип Викисклада Медиафайлы на Викискладе

AspectJаспектно-ориентированное расширение языка Java, созданное компанией PARC. Язык доступен в проектах Eclipse Foundation как отдельно, так и в составе среды разработки Eclipse. Язык стал де-факто стандартом аспектно-ориентированного программирования, подчёркивая простоту и удобство для пользователей. С первого выпуска язык использует Java-подобный синтаксис.

Простое описание языка

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

  • Методы расширения позволяют программисту добавлять методы, поля и интерфейсы в существующие классы. Данный пример добавляет метод acceptVisitor (см. шаблон проектирования посетитель) в код класса Point:
aspect VisitAspect {
  void Point.acceptVisitor(Visitor v) {
    v.visit(this);
  }
}

Библиография

  • Laddad, Ramnivas (September 28, 2009), AspectJ in Action: Enterprise AOP with Spring (2nd ed.), Manning Publications, p. 550, ISBN 978-1-933988-05-4
  • Miles, Russ (December 20, 2004), AspectJ Cookbook (1st ed.), O'Reilly Media, p. 354, ISBN 978-0-596-00654-9
  • Colyer, Adrian; Clement, Andy; Harley, George; Webster, Matthew (December 24, 2004), Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools (1st ed.), Addison-Wesley Professional, p. 504, ISBN 978-0-321-24587-8
  • Gradecki, Joseph D.; Lesiecki, Nicholas (March 7, 2003), Mastering AspectJ: Aspect-Oriented Programming in Java (1st ed.), Wiley, p. 456, ISBN 978-0-471-43104-6

См. также

Примечания

Ссылки