Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Аспектно-ориентированное программирование

Модель водопада | Итеративная разработка | Спиральная модель | Вычислительные системы | Операционные системы | Выбор языка и среды программирования | Краткий обзор распространенныхпромышленных языков программирования и программных платформ | Структурное программирование | Функциональное программирование | Событийно-ориентированное программирование |


Читайте также:
  1. Аспектно-ориентированное программирование
  2. Аспектно-ориентированное программирование
  3. Визуально-ориентированное программирование
  4. Визуально-ориентированное программирование
  5. Визуально-ориентированное программирование
  6. Логическое программирование.

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

Недостатки аспектного подхода

· Не полностью проработана методология АОП-разработки программ. В данный момент законченный и оттестированный компилятор имеется только для нескольких языков, что ограничивает применение данной технологии.

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

· Недостаточно проработан механизм привязки аспектов к компонентам. В распространенных в настоящее время АОП-реализациях точки связывания описываются в

· терминах программных конструкций — классов, методов, полей класса. При этом получается тесная связь между аспектом и компонентом, к которому он применяется. Логика привязки аспекта к данной точке кода выражена неявно и целиком определяется программной конструкцией, в терминах которой построено описание. Тесная связь между аспектом и компонентом делает аспект зависимым от компонента и при этом нарушается одна из основных идей АОП — независимость компонентов от применяемых к нему аспектов.

· Не полностью исследованы случаи, когда аспекты удобно и целесообразно былобы применить. Необходимо разработать метрики, позволяющие обосновывать эффективность

· применения АОП к отдельным системам. Например, будет ли повторная реализация шаблонов проектирования с использованием АОП лучше стандартных объектно-ориентированных шаблонов? В каких случаях шаблоны лучше, а в каких - нет? Какие необходимо создать показатели для получения информации о таких метриках и для их разработки?

 


Дата добавления: 2015-08-27; просмотров: 70 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Объектно-ориентированное программирование| Визуально-ориентированное программирование

mybiblioteka.su - 2015-2024 год. (0.006 сек.)