Контекстно-ориентированное программирование
Материал из Википедии — свободной энциклопедии
Необходимо перенести содержимое этой статьи в статью аспект-ориентированное программирование. Вы можете помочь проекту, объединив статьи. Для обсуждения целесообразности перемещения, замените это примечание на {{amerge}} и добавьте соответствующую запись на странице ВП:КОБ. |
![]() |
Контекстно-ориентированное программирование (аспектно-ориентированное программирование) - технология разработки программного обеспечения, концентрирующаяся на выделении общих для некоторых частей кода программы микроконцепций. Выделением подобных микроконцепций в собственные блоки, контекстно-ориентированное программирование позволяет разбить программу на независимые блоки, сосредоточив в каждом из них функционально-законченные участки. Объединение подобных участков служит приданием коду определенного контекста или аспекта, внутри которого происходит его исполнение.
Методология контекстно-ориентированного программирования была предложена группой инженеров исследовательского центра Xerox PARC под руководством Грегора Кикзалеса (Gregor Kiczales). Ими же был разработан первый, и наиболее успешный до сих пор, контекстно-ориентированный язык программирования : AspectJ.
Суть контекстно-ориетированного программирования состоит в применении так называемых аспектов, которые действуют на систему, изменяя ее поведение. Аспектно-ориетированное программирование появилось вследствие детального изучения современных принципов построения программного кода: было обнаружено, что в исходном коде программы часто тесно переплетены различные функции, которые не удавалось разделить существующими инструментами. Например, в объектно-ориентированной парадигме считается невозможным разрешить т. н. задачу “логирования” вызова методов, когда требуется вести журнал подобных вызовов, не прибегая к явному вызову метода “логирования” из исходных методов.
В аспектно-ориетированном программировании, как парадигме, принято рассматривать следующие важнейшие сущности:
Точка присоединения (JoinPoint) — однозначно определяемое место в программе. Срез (PointCut) — набор точек присоединения, удовлетворяющий заданному правилу. Фрагмент вставки (Advice)— это набор инструкций языка программирования, который интегрируется во все точки заданного среза. Аспект (Aspect) — это пара: правило, задающее срез и фрагмент, подлежащий вставке в точки этого среза. Представление (Introduction) — это формализованное правило изменения структуры класса.
[править] Внешние ссылки (на английском языке)
- Aspect-Oriented Software Development (материалы конференции)