An introduction to and history of aspect-oriented programming. A short overview of AspectJ, certain challenges such as the state-point separation problem, and how explicit join points (EJPs) help mitigate these problems.
5. Aspect-Oriented Programming
Make cross-cutting concerns:
Separated from the ―base code‖
No coupling between base code / cross-cutting concerns
Aim for lexical and semantic separation
Modular
Domain experts write the ―hard stuff‖ once