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

Содержимое удалено Содержимое добавлено
логирование
Строка 6:
 
== История ==
Аспектно-ориентированное программирование «выросло» из осознания того, что в типовых программах часто представлено поведение, которое не вмещается естественно в один или даже в несколько тесно связанных программных модулей. Пионеры аспектного подхода определили такое поведение термином '''crosscutting''', поскольку при этом пересекаются друг с другом ответственности разработчиков программных модулей. В объектно-ориентированном программировании, например, естественной единицей модульности является класс, а отношение ''crosscutting'' охватывает несколько классов. Обычно отношение ''crosscutting'' встречается при организации журналов работы приложения (''logging''логирование), контекстно-зависимой обработке ошибок, оптимизации выполнения программ, а также в шаблонах проектирования.
 
Если вы когда-нибудь работали над кодом с crosscutting-отношением, вам известны проблемы, связанные с ограничением модульности. Поскольку crosscutting-поведение реализуется разрозненно, разработчики находят такое поведение затруднительным в осмысливании, реализации и изменении. Код для ведения журналов, например, переплетается с кодом, отвечающим в основном за что-либо другое. В зависимости от масштаба и сложности crosscutting-отношения степень запутанности может быть более или менее значительной.