Aspect-oriented programming, or AOP, complements object-oriented programming by
allowing the developer to dynamically modify the static object-oriented model to
create a system that can grow to meet new requirements, allowing an application
to adopt new characteristics as it develops.
*AOP
provides a solution for abstracting cross-cutting code that spans object
hierarchies without functional relevance to the code it spans. Instead of
embedding cross-cutting code in classes, AOP allows you to abstract the
cross-cutting code into a separate module (known as an aspect) and then apply
the code dynamically where it is needed. You achieve dynamic application of the
cross-cutting code by defining specific places (known as
pointcuts) in your
object model where cross-cutting code should be applied. At runtime or compile
time, depending on your AOP framework, cross-cutting code is injected at the
specified pointcuts. Essentially, AOP allows you to introduce new functionality
into objects without the objects' needing to have any knowledge of that
introduction.
*[Source:
Oracle technology Network]