Эта статья в значительной степени или полностью основана на одном источнике . ( июнь 2008 г. ) |
В программировании , аспект программы - это функция, связанная со многими другими частями программы, но не связанная с основной функцией программы. Аспект пересекает основные интересы программы, тем самым нарушая ее разделение интересов , которое пытается инкапсулировать несвязанные функции. Например, код журналирования может пересекать многие модули, однако аспект журналирования должен быть отделен от функциональных интересов модуля, который он пересекает. Изоляция таких аспектов, как журналирование и сохранение, от бизнес-логики лежит в основе парадигмы аспектно-ориентированного программирования (АОП) . [1]
Ориентация на аспекты не ограничивается программированием, поскольку она полезна для идентификации, анализа, отслеживания и модуляризации проблем посредством выявления требований, спецификации и проектирования. Аспекты могут быть многомерными, позволяя как функциональному, так и нефункциональному поведению пересекать любые другие проблемы, вместо того, чтобы просто отображать нефункциональные проблемы в функциональные требования. [ необходима цитата ]
Один из взглядов на аспектно-ориентированную разработку программного обеспечения заключается в том, что каждая основная функция программы, основная проблема (бизнес-логика) или сквозная проблема (дополнительные функции) являются аспектом, и, сплетая их вместе (процесс, также называемый композицией), в конечном итоге получается целое из отдельных аспектов. Этот подход известен как чистое аспектное программирование, но гибридные подходы более распространены. Возможно, что функциональные проблемы пересекают нефункциональные или функциональные проблемы (например, потребность в большем количестве функций вредит мобильности). Единый подход к представлению и композиции, аналогичный чистому подходу в АОП, называется многомерным представлением. [ необходима цитата ]