Аспектно-ориентированное программирование: различия между версиями

Содержимое удалено Содержимое добавлено
м →‎История: оформление
Строка 9:
 
Если вы когда-нибудь работали над кодом с crosscutting-отношением, вам известны проблемы, связанные с ограничением модульности. Поскольку crosscutting-поведение реализуется разрозненно, разработчики находят такое поведение затруднительным в осмысливании, реализации и изменении. Код для ведения журналов, например, переплетается с кодом, отвечающим в основном за что-либо другое. В зависимости от масштаба и сложности crosscutting-отношения степень запутанности может быть более или менее значительной.
Изменение политики регистрации активности приложения может потребовать многих сотен правок — тяжелейшая, если, вообще, выполнимая задача. С другой стороны известен пример следующего рода:
 
:Для оптимизации эффективности некую программу переписали — при этом из 768-строковой она превратилась в 35213 строк. С применением аспектно-ориентированной технологии этот код уменьшился до размера в 1039 строк, почти полностью сохранив при этом эффективность.
 
AOP дополняет объектно-ориентированное программирование, обогащая его другим типом модульности, который позволяет локализовать код реализации crosscutting логики в одном модуле. Такие модули обозначаются термином аспекты, от аспектно-ориентированного программирования. За счет отделения аспектно-ориентированного кода работа с crosscutting- отношениями упрощается. Аспекты в системе могут изменяться, вставляться, удаляться на этапе компиляции и, более того, повторно использоваться.