AOP означает Аспектно-ориентированное Программирование. Используйте этот тег, если ваш вопрос касается аспектно-ориентированных концепций и методов или для задач программирования с использованием расширений AOP на любом языке. АОП повышает модульность, позволяя разделить «сквозные задачи»; в аспекты. Нажмите, чтобы узнать больше ... чтобы узнать, что это такое.

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

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

Тем не менее, сквозные задачи не могут быть модульными в ООП (поэтому они называются «сквозными», потому что они «пересекают» функциональные проблемы). Код для сквозной задачи в конечном итоге распространяется ( запутан ) по многим или даже по всем модулям в программе ООП. АОП решает эту проблему, собирая этот разложенный код в один модуль, называемый аспектом .

Ведение журнала, кэширование, безопасность и управление транзакциями являются примерами сквозных проблем . AOP упрощает модернизацию существующих приложений с помощью любого из этих сервисов. Исходный код не изменяется. Вместо этого аспект создается с советами и точками. Совет похож на метод класса - он содержит код с новой функциональностью, которая будет добавлена. Точка - это код, который выбирает одну или несколько точек соединения . Точки соединения - это конкретные места в существующей программе, где будут применяться рекомендации. Новая программа создается во время процесса, называемого ткачества , когда исходный код и код аспекта объединяются друг с другом. Плетение может быть выполнено во время компиляции или загрузки, так что вы можете добавлять аспекты в программы, даже если у вас нет исходного кода (есть некоторые ограничения, см., Например, здесь ). [1133 ]

Наиболее широко используемым языком AOP является AspectJ , который является аспектно-ориентированным усовершенствованием Java. Использование AOP в среде Spring также популярно здесь, на SO. AOP доступен несколькими способами, включая командную строку , Eclipse , Spring и IntelliJ Ultimate . AOP также доступен для нескольких других языков: Python, JavaScript, Ruby, Lua и Smalltalk.

AOP был впервые использован в 1997 году в Xerox PARC для решения проблемы запутанных сквозных проблем в объектно-ориентированных программах.

SO, связанные с AOP Метки: